gpt4 book ai didi

android - 如何将基线对齐到多行 TextView 的底线?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:49:17 27 4
gpt4 key购买 nike

我有两个并排的 TextView。假设左边的 TextView 是 1 行,右边的 TextView 是 2 行。有什么方法可以使左侧 TextView 的基线与右侧 TextView 的最后一行对齐?

我愿意使用任何可以实现此目的的布局(RelativeLayout、LinearLayout 等)。

(Android 中 android:layout_alignBaseline 的默认行为是对齐顶行的基线。)

最佳答案

如果您实现自定义 TextView,则可以使用 RelativeLayout 完成此操作。具体来说,您可以覆盖 TextView.getBaseline像这样:

package mypackage.name;

// TODO: imports, etc.

public class BaselineLastLineTextView extends TextView {
// TODO: constructors, etc.

@Override
public int getBaseline() {
Layout layout = getLayout();
if (layout == null) {
return super.getBaseline();
}
int baselineOffset = super.getBaseline() - layout.getLineBaseline(0);
return baselineOffset + layout.getLineBaseline(layout.getLineCount()-1);
}
}

然后您将在 RelativeLayout 中使用您的自定义 TextView,如下所示:

<mypackage.name.BaselineLastLineTextView
android:id="@+id/text_view_1"
<!-- TODO: other TextView properties -->
/>

<TextView
android:id="@+id/text_view_2"
android:layout_alignBaseline="@id/text_view_1"
<!-- TODO: other TextView properties -->
/>

关于android - 如何将基线对齐到多行 TextView 的底线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306667/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com