Как защитить интерфейс приложения, чтобы он менялся при программном изменении языка приложения? - PullRequest
0 голосов
/ 19 февраля 2019

Я занимаюсь разработкой приложения на двух языках - английском и арабском.и для этого у меня в приложении есть кнопка для программного изменения языка.Я могу изменить его, нажав на кнопку, но когда я изменяю его с английского на арабский, мой пользовательский интерфейс также меняется слева направо, но я хочу, чтобы мой пользовательский интерфейс оставался одинаковым для обоих.как мне это сделать?Я меняю язык, используя этот метод. Частный статический контекст. UpdateResourcesLegacy (Context context, String language) {

    Locale locale = new Locale(language);
    Locale.setDefault(locale);

    Resources resources = context.getResources();

    Configuration configuration = resources.getConfiguration();
    configuration.locale = locale;

    resources.updateConfiguration(configuration, resources.getDisplayMetrics());

    return context;
}

, и он работает, но пользовательский интерфейс отражается.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Попробуйте добавить android:supportsRtl="false" в файл manifest.xml внутри тега <application>.Это исправит ориентацию вашего пользовательского интерфейса, но может негативно повлиять на ориентацию текста, поскольку на арабском языке необходимо указывать справа налево.

Другое решение заключается в добавлении android:layoutDirection="ltr" в ваши действия.

0 голосов
/ 19 февраля 2019

То есть вы не хотите поддержку RTL в своем приложении?Попробуйте android: supportRtl = "false" в вашем менифесте.

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="false"
android:theme="@style/AppTheme">
...
</application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...