77

android:textAlignment和有什么区别android:gravity

4

4 回答 4

63

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

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

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

于 2013-04-24T16:27:35.567 回答
17

使用 API 15,android:textAlignment可能无法获得预期的结果。下面的代码片段尝试TextView使用 将第一个对象居中android:textAlignment="center"。第二种用途android:gravity="center_horizontal"textAlignment没有效果,而重力工作正常。使用 API 17+,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 15 中的结果布局

API 17+ 中的结果布局:
API 17+ 中的结果布局

于 2017-09-29T15:18:28.407 回答
13

还有一点没有明确提到:

如果您的应用程序禁用了 RTL 支持,例如android:supportsRtl="false"在清单application标记中,则View textAlignment在工作时不适用于文本定位TextView gravity

另一个更喜欢的理由gravity

于 2019-04-03T14:21:50.950 回答
7

据我所见, textAlignment 似乎大多未使用。根据它的描述,它应该只是右对齐或左对齐。Gravity 似乎是一种改进的 textAlignment。

于 2013-04-24T16:22:30.613 回答