我有一个多语言的应用程序与主要语言英语和中学语言阿拉伯语。
根据 文件的描述,
android:supportsRtl="true"。left和 right属性的所有 xml 属性分别更改为 start和 end。strings-ar中添加了阿拉伯语字符串(对于其他资源也是如此)。上述设置工作正常。将 Locale改为 ar-AE后,阿拉伯文本和资源将正确显示在我的活动中。
但是,每次我导航到一个
Activity与WebView及/或WebViewClient、地区、文字及布局方向 突然恢复到设备默认状态。
进一步提示:
WebView和/或 WebViewClient(我有几个)的 Activity时,语言环境的突变发生在 只有。它不会出现在任何其他活动中。Android 7.0支持多语言环境,允许用户设置多个默认语言环境。因此,如果我将主语言环境设置为 Locale.UK:
然后,在导航到
WebView时,语言环境从ar-AE改变 到en-GB。
Android 7.0 API 更改:
如 空气污染指数变化清单所示,在 API 24中的以下类中添加了与区域设置有关的新方法:
返回文章页面
返回文章页面
但是,我正在用 API 23构建我的应用程序,并且没有使用任何 这些新方法。
而且..。
这个问题也发生在 Nexus6P 仿真器上。
要获得默认的区域设置,我使用的是 Locale.getDefault()。
要设置默认语言环境,我使用以下代码:
public static void setLocale(Locale locale){
Locale.setDefault(locale);
Configuration config = new Configuration();
config.setLocale(locale);
Context context = MyApplication.getInstance();
context.getResources().updateConfiguration(config,
context.getResources().getDisplayMetrics());
}
Has anyone encountered this problem before? What is the reason for it, and how do I resolve this?
References:
1. Native RTL support in Android 4.2.