Android-在同一基线上对齐不同的字体大小

时间:2019-01-28 21:23:38

标签: android android-layout textview android-xml

我有2个相邻的client_OpenReadCompleted,每个都有不同的字符串,且其字体大小也不同。我希望每个TextView中的文本都具有相同的基线。我该怎么办?

这是我的布局:

TextView

这是当前行为,请注意2个 <LinearLayout app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:background="@color/colorAccentLight" android:textSize="18sp" style="@style/Base.TextAppearance.AppCompat.Medium" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="bottom" android:textAlignment="gravity" android:text="30" /> <TextView android:background="@color/colorAccent" android:text="hello" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="bottom" android:textAlignment="gravity" /> </LinearLayout> 的基准线是如何不同的(“ hello”比30个基准线低),因为每个TextView的字体大小都不同。

enter image description here

2 个答案:

答案 0 :(得分:6)

ConstraintLayout中,您可以简单地使用

app:layout_constraintBaseline_toBaselineOf="@+id/textView1"

答案 1 :(得分:1)

将两个TextView元素的高度都更改为wrap_content。默认情况下,水平LinearLayout将自动对齐TextView子级的基线。

如果您当前使用match_parent来获取高度以具有全高背景色,则必须考虑另一种方法来实现。也许可以在LinearLayout上使用背景色,然后仅在较大的TextView上指定背景色;这将产生与今天相同的效果。