#android #alignment #locale #hebrew
Вопрос:
Я хочу иметь возможность использовать свое приложение как на английском, так и на иврите. Чтобы правильно выровнять представления, я использую:
android:layoutDirection="locale"
XML, который я использую, это:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale"
android:tag="none">
<ScrollView
android:id="@ id/svNewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@ id/buttons_header"
android:layout_alignParentTop="true"
android:layoutDirection="locale"
android:background="#FFF" >
<RelativeLayout
android:id="@ id/new_main_relative_layout"
android:clickable="true"
android:focusableInTouchMode="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="locale"
android:focusable="true">
<ImageButton
android:id="@ id/btn_settings"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginTop="20dp"
android:layout_marginEnd="20dp"
android:background="@android:color/transparent"
android:src="@drawable/settings_icon"
android:contentDescription="@string/settings" />
</RelativeLayout>
</ScrollView>
</RelativeLayout>
Идея состоит в том, что значок настроек будет выровнен по родительскому концу.
В случае английского языка он должен быть выровнен по правому краю.
В случае иврита он должен быть выровнен по левому краю — и это не работает для меня.
У меня в AndroidManifest.xml эта строка для поддержки RTL:
android:supportsRtl="true"
Я также проверил языковой стандарт конфигурации, чтобы убедиться, что это iw:
String config_locale = getResources().getConfiguration().getLocales().get(0).toString();
Log.d(TAG,"LOCALE = " config_locale);
В журнале регистрации показано: iw
Итак, что я делаю не так? Возможно ли автоматическое выравнивание представлений для обоих языков?
Спасибо!