android:textAlignment
和android:gravity
之间有什么区别?
答案 0 :(得分:47)
我只能看到textAlignment是View Class的成员,而gravity是TextView类的成员。因此,对于TextView及其子类,您可以使用重力,同时可以对所有视图使用textAlignment。
由于TextView及其子类需要更多的文本对齐功能,因此您可以看到有更多的重力选项,其中textAlignment只有基本选项。虽然这只是我的猜测,因为我没有找到任何有关差异的明确文件。
您可以看到这两个文档链接:textAlignment和gravity。
答案 1 :(得分:9)
使用API 15,TextView
可能没有所需的结果。下面的代码段尝试使用android:textAlignment="center"
将第一个android:gravity="center_horizontal"
对象居中。第二个使用textAlignment
。 textAlignment
没有效果,而重力工作正常。使用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中的结果布局:
API 17+中的结果布局:
答案 2 :(得分:5)
据我所见,textAlignment似乎大多未使用过。 根据它的描述,它应该做正确或左对齐。 重力似乎是一个改进的textAlignment。
答案 3 :(得分:2)
未明确提及的另一点:
如果您的应用通过以下方式禁用了RTL支持: {} {1}}在清单android:supportsRtl="false"
标记中,则application
View
起作用时textAlignment
TextView
不适用于文本定位。
还有一个更喜欢gravity
的原因。