Android N 7.1(API-25)で奇妙な動作が発生しました。WebViewの起動後、システムはロケールをデバイスロケールにリセットします。これは、アプリケーションで使用されたロケール(ローカライゼーション用)をオーバーライドします。簡単に再現する方法は、アプリケーションのローカリゼーションを取得することです。 WebViewを起動します。その後、もう一度アプリケーションを再起動するまで、ローカライズされたコンテンツは表示されなくなります。それが唯一のAndroid 7.1(API-25)Android Nougat 7.1はWebViewの起動後にロケールをリセットします
で発生ここで私はすべての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のグループにチケットを発行するためのリンクです。ここIssue 218310: [developer preview] Creating a WebView resets Locale to user defaults
今のところこれは唯一の解決策です。 –