我有一个多语言的应用程序与主要语言英语和中学语言阿拉伯语。
根据 文件的描述,
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.