android:textAlignment和 android:gravity有什么区别?
android:textAlignment
android:gravity
据我所知,文本对齐似乎大多未被使用。 根据它的描述,它应该只做右对齐或左对齐。 重力似乎是一个改进的文本对齐。
我所能看到的是 textAlign 是 View 类的一个成员,重力是 TextView 类的成员。因此,对于 TextView 及其子类,您可以使用引力,而对所有视图都可以使用 textAlign。
由于 TextView 及其子类需要一些更多的文本对齐特性,因此您可以看到在文本对齐中只有基本选项的重力选项更多。虽然这只是我的猜测,因为我还没有找到任何关于这种差异的明确文档。
您可以看到这两个文档链接: 文本对齐和 重力。
对于 API 15,android:textAlignment可能不会达到预期的结果。下面的代码片段尝试使用 android:textAlignment="center"集中第一个 TextView对象。第二种使用 android:gravity="center_horizontal"。textAlignment没有效果,而重力工作良好。与 API 17 + ,textAlignment中心的文本预期。
android:textAlignment="center"
TextView
android:gravity="center_horizontal"
textAlignment
为了确保你的文字与所有版本的对齐正确,我会选重力。
<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>
API 15的布局结果:
API 17 + 的布局结果:
还有一点没有明确提到:
如果应用程序禁用了 RTL 支持,例如在清单 application标签中禁用了 android:supportsRtl="false",那么 View textAlignment不能用于文本定位,而 TextView gravity可以用于文本定位。
application
android:supportsRtl="false"
View
gravity
这是另一个选择 gravity的理由。