Android: gravity = "start" в RTL выравнивает текст влево не вправо

При тестировании моего макета на устройстве с языком RTL (на арабском языке) я обнаружил, что TextView с силой тяжести: начало выравнивания текста слева, а не справа! Я пробовал андроид: textAlignment = "viewStart", и он работает правильно, но из-за требований API я не зависел от него.

Мой код (я имею в виду первый текст в моем коде):

<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> 

Для полной поддержки или RTL вам нужно настроить api 17

Если вы нацеливаете свое приложение на Android 4.2 (целевое приложение appsdkVersion или minSdkVersion равно 17 или выше), вы должны использовать «start» и «end» вместо «left» и «right». Например

Поддержка родной RTL в Android 4.2

Мое текущее обходное решение для этого, если кто-то заинтересован в будущем, добавляет пустой вид между этими двумя элементами и заставляет его заполнять пустое пространство между ними (вес = 1), чтобы они выравнивались правильно. Тем не менее я не понимаю, что ненормальное поведение силы тяжести = "начало"

Intereting Posts