RTL не работает должным образом - PullRequest
0 голосов
/ 02 июля 2018

В настоящее время я работаю над приложением для Android, которое должно поддерживать языки английский и арабский, и я использую этот код для переключения с одного языка на другой.

String languageToLoad; // your language
    if (languageSwitch.isChecked()) {
        languageToLoad = "ar";//arabic
    } else {
        languageToLoad = "en";//english
    }

    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;

    // store it in the cache for any further use
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());
    SharedPreferencesUtil.putString(this, "language", languageToLoad);

Работало нормально, я сделал 2 папки макетов, нормальную и layout-ar. Он работал правильно, но иногда он запутался, и вместо арабского он показывает макет на английском, а приложение продолжает работать только в английском режиме.

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Оказывается, что веб-просмотр ответственен за проблему: после создания веб-просмотра он удаляет все переопределенные локальные данные и вставляет их с устройства, чтобы исправить проблему, необходимо выполнить найденные шаги. по этой ссылке .

0 голосов
/ 02 июля 2018

В конце вы должны возобновить свою деятельность. Попробуйте это.

 public void updateActivity() {
        Intent intent = new Intent(getActivity(), MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
    }
...