美文网首页
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