美文网首页
WebView会影响getResources().getConf

WebView会影响getResources().getConf

作者: 苍蝇的梦 | 来源:发表于2022-12-14 19:10 被阅读0次

2022-12-08 遇到的一点小问题

app里面有个切换语言的功能,根据用户选择的语言来展示对应的string.xml的内容。
主要代码就是通过修改Configuration.setLocale(Locale loc)方法来实现的。

Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
Configuration config = resources.getConfiguration();
config.setLocale(Locale.FRENCH);
resources.updateConfiguration(config, metrics);

今天突然遇到的一点小问题 ,发现app设置的英文,但在一段操作后,变成了手机选择的简体中文。
debug看了下Configuration,发现由设置的"en", ""变为手机的"zh", "CN"
网上找了下,看到Android N之后 Webview导致多语言切换失效的问题,明白是WebView引起的。
相关信息,文章里也贴了链接#Android - WebView language changes abruptly on Android 7.0 and above,记录一下。
在页面的onDestroy()方法,重新调用语言设置,测试了一下,离开有WebView的页面就正常了。

    @Override
    public void onDestroy() {
        super.onDestroy();
        //重新设置一下语言
    }

继续测试,发现有个有WebView页面的弹窗,弹出来的语言和app设置的不一致。
查了下,发现页面在inflater.inflate(R.layout.xxx, container, false)后,如果xml文件里有<WebView/>控件,Configuration就发生变化了。
测试了一下,在inflater.inflate()之后重新设置语言就可以正常了。

Language

相关文章

网友评论

      本文标题:WebView会影响getResources().getConf

      本文链接:https://www.haomeiwen.com/subject/wmgzfdtx.html