Мы получили странное поведение с Android N 7.1 (API-25). После запуска WebView система принудительно сбрасывает локаль на локаль устройства. Это переопределяет используемый язык (для локализации) в приложении. Простой способ воспроизвести это — получить локализацию приложения. и запустите WebView. Тогда вы больше не увидите локализованный контент, пока не перезапустите приложение. Это происходит только на Android-7.1 (API-25)
Вот как я переключаю Locale, который работает во всех API:
public void switchToCzLocale() {
Locale mLocale = new Locale("cs","CZ");// it can be any other Locale
Configuration config = getBaseContext().getResources()
.getConfiguration();
Locale.setDefault(mLocale);
config.setLocale(mLocale);
getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
}
Я загрузил образец, чтобы воспроизвести эту проблему с более подробной информацией о:
https://github.com/mabuthraa/WebView-android7-issue
Пожалуйста, подскажите, является ли это поведение ошибкой или, возможно, плохой имплантацией изменения локали.
Вот ссылка на выпуск тикета в группе Android: Ошибка 218310: [предварительная версия для разработчиков ] Создание WebView сбрасывает Locale на пользовательские значения по умолчанию