8

在使用 RTL 语言(阿拉伯语)的设备上测试我的布局时,我发现带有重力的 TextView:start 一直将文本对齐到左侧而不是右侧!我尝试了 android:textAlignment="viewStart" 并且它工作正常,但由于 API reqs 我不依赖它。

我的代码(我的意思是我的代码中的第一个文本视图):

<LinearLayout
android:orientation="horizontal"
android:gravity="center_vertical"
>

<TextView
    android:text="Size"
    android:gravity="start"
    android:layout_weight="1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"/>

<LinearLayout android:gravity="center" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
    <TextView
        android:text="000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="subtext"/>
</LinearLayout></LinearLayout>
4

2 回答 2

3

要获得完全支持或 RTL,您必须以 api 17 为目标

如果您将应用程序定位到 Android 4.2(应用程序的 targetSdkVersion 或 minSdkVersion 为 17 或更高版本),那么您应该使用“start”和“end”而不是“left”和“right”。例如

Android 4.2 中的原生 RTL 支持

于 2016-05-03T05:54:19.933 回答
1

如果有人对未来感兴趣,我目前的解决方法是在两个元素之间添加一个空视图并使其填充它们之间的空白空间(权重 = 1),以便它们正确对齐。仍然我不明白gravity =“start”的异常行为

于 2016-05-03T06:09:39.433 回答