美文网首页
解决安卓(AndroidX)设置多语言失效问题

解决安卓(AndroidX)设置多语言失效问题

作者: TimberBug | 来源:发表于2020-10-21 18:29 被阅读0次

    1.背景

    最近在做一个香港的项目中,需要设置简体、繁体以及英文三种语言,在切换语言后会重启MainActivity,此时会在BaseActivity中重写attachBaseContext方法,重新设置context从而实现语言切换(应该大部分同学都是使用该方法实现的)

    2.遇到问题

    项目开发完成在测试阶段,切换语言在大部分手机都是正常的,但是。。。突然一天测试拿来一款华为手机,说该手机上语言显示不正常(切换为繁体但是还是显示的简体)。what????这是什么操作,为什么会出现这么个问题?。。。瞬间一连串问题出现脑海里。。。。

    3.解决问题

    有问题当然要想办法解决咯!首先想到是不是这种方法实现上有缺陷?但立马又推翻了,只有这一款手机这样,不应该是这种情况的...然后想难道是这个手机的设置里面有设置了什么?就拿着这个手机进入设置中仔细翻了一遍,结果依然没有找到问题所在...到了现在,就想到了强大的‘度娘’了,一番搜索后,终于发现问题所在:部分手机升级androidX后切换语言不生效,此时我想到我的项目中用的库正是androidx的库,这个库怎么会造成这个问题?是这个库的兼容性问题?还是一脸懵逼。。。。既然返现问题的所在,那就继续搜索解决方案了。最终使用以下方法解决该问题:在你的BaseActivity中,重写applyOverrideConfiguration方法,如下:

    @Override
    public void applyOverrideConfiguration(ConfigurationoverrideConfiguration) {
        // 兼容androidX在部分手机切换语言失败问题
        if (overrideConfiguration != null) {
           int uiMode = overrideConfiguration.uiMode;
           overrideConfiguration.setTo(getBaseContext().getResources().getConfiguration());
           overrideConfiguration.uiMode = uiMode;
        }
        super.applyOverrideConfiguration(overrideConfiguration);
    }
    

    4.总结

    项目中遇到的问题,虽是通过‘度娘’解决的,但还是要自己在这里记录下,加深下印象,避免下次再次入坑~~~顺便也给其他小伙伴提供更多的搜索资源吧,哈哈哈。。。。

    相关文章

      网友评论

          本文标题:解决安卓(AndroidX)设置多语言失效问题

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