我有一个多语言的应用程序与主要语言英语和阿拉伯语中学语言。 如文件所述 , 我已经在清单中添加了android:supportsRtl="true" 。 我已经改变了所有具有right属性的XML属性分别start和end 。 我在strings-ar添加了阿拉伯语语言string(对于其他资源也类似)。 上述设置正常工作。 将Locale更改为ar-AE ,阿拉伯文文本和资源正确显示在我的活动中。 但是,每次使用WebView和/或WebViewClient导航到Activity时,语言环境,文本和布局方向都会突然恢复为设备默认设置。 更多提示: 这仅在使用Android 7.0的Nexus 6P上发生。 一切正常在Android 6.0.1及以下。 只有在导航到具有WebView和/或WebViewClient的Activity (我有几个)时, 才会发生语言环境的突变。 它不会发生在其他任何活动上。 Android 7.0具有多语言环境支持,允许用户设置多个默认语言环境。 所以,如果我将主要语言环境设置为Locale.UK : 然后在导航到WebView ,语言环境从ar-AE更改为en-GB 。 Android 7.0 API更改: 如API更改列表中所示,有关语言环境的新方法已添加到API 24中的以下类中: Locale : Locale.getDefault(…) Locale.setDefault(…) Configuration : getLocales() setLocales(…) 不过,我正在用API 23构build我的应用程序,并没有使用任何这些新的方法。 再说… Nexus 6P仿真器上也会出现该问题。 要获取默认语言环境,我使用了Locale.getDefault() 。 要设置默认语言环境,我使用下面的代码: public static void setLocale(Locale locale){ […]