我正在尝试并排放置两个 TextView,我希望其中一个触摸屏幕的右侧,另一个触摸屏幕的左侧。我不想使用数字来定义宽度,因为不同尺寸的屏幕会有不同的表现。所以我正在尝试使用 layout_gravity,但由于某种原因它不起作用。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:layout_gravity="left"
android:text="rrr"
android:textColor="@color/secondTextColor"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:textSize="16dp"
android:text="sss"
android:textColor="@color/secondTextColor" />
</LinearLayout>
谁能告诉我为什么?谢谢!
最佳答案
您可以为每个 TextView
创建一个 LinearLayout
,如下所示:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="start">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:text="rrr"
android:textColor="#f2f2"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:text="sss"
android:textColor="#f3f3" />
</LinearLayout>
</LinearLayout>
重要的是,在您的第一个 LinearLayout
中放置了 android:gravity="start"
并在第二个中放置了 android:gravity="end "
,那么它将起作用:)
使用 end
而不是 right
以确保在从右到左的语言环境中的正确行为。
Why is "end" better than "right"?
使用 Gravity#LEFT
和 Gravity#RIGHT
在文本从 right
流向 左
。
请改用 Gravity#START
和 Gravity#END
。同样,在 XML
gravity 和 layout_gravity
属性中,使用 start
而不是 left
。
对于 paddingLeft
和 layout_marginLeft
等 XML 属性,请使用 paddingStart
和 layout_marginStart
。
注意:如果您的 minSdkVersion
小于 17,您应该添加旧的 left/right
属性以及新的 start/right
属性.在不支持 RTL
且 start/right
属性未知并因此被忽略的较旧平台上,您需要较旧的 left/right
属性.有一个单独的 lint 检查可以捕获该类型的错误。
(注意:对于 Gravity#LEFT
和 Gravity#START
,即使针对较旧的平台,您也可以使用这些常量,因为起始位掩码是 left 的超集位掩码。因此,您可以使用 gravity="start"
而不是 gravity="left|start"
。)
关于android - 两个并排的 TextView 的引力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35038964/