Android中的文本/布局对齐(textAlignment,gravity)

时间:2013-04-24 15:46:13

标签: android mobile layout text-alignment layout-gravity

android:textAlignmentandroid:gravity之间有什么区别?

4 个答案:

答案 0 :(得分:47)

我只能看到textAlignment是View Class的成员,而gravity是TextView类的成员。因此,对于TextView及其子类,您可以使用重力,同时可以对所有视图使用textAlignment。

由于TextView及其子类需要更多的文本对齐功能,因此您可以看到有更多的重力选项,其中textAlignment只有基本选项。虽然这只是我的猜测,因为我没有找到任何有关差异的明确文件。

您可以看到这两个文档链接:textAlignmentgravity

答案 1 :(得分:9)

使用API​​ 15,TextView可能没有所需的结果。下面的代码段尝试使用android:textAlignment="center"将第一个android:gravity="center_horizontal"对象居中。第二个使用textAlignmenttextAlignment没有效果,而重力工作正常。使用API​​ 17+,<LinearLayout android:layout_width="50dp" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="Fri" android:textAlignment="center" android:textSize="16sp" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="29" android:gravity="center_horizontal" android:textSize="18sp" /> </LinearLayout> 可以按预期使文本居中。

为了确保您的文字与所有版本正确对齐,我会选择重力。

{{1}}

API 15中的结果布局:
Resulting layout in API 15

API 17+中的结果布局:
Resulting layout in API 17+

答案 2 :(得分:5)

据我所见,textAlignment似乎大多未使用过。 根据它的描述,它应该做正确或左对齐。 重力似乎是一个改进的textAlignment。

答案 3 :(得分:2)

未明确提及的另一点:

如果您的应用通过以下方式禁用了RTL支持: {} {1}}在清单android:supportsRtl="false"标记中,则application View起作用时textAlignment TextView不适用于文本定位。

还有一个更喜欢gravity的原因。