AndroidX迁移填坑指南

1. 迁移后国际化(多语言)失效问题

解决办法:在attachBaseContext后添加代码

    @Override
    protected void attachBaseContext(Context newBase) {
        String currentLanguageId = SharedPreferencesTool.getFromPrefs(newBase, Constant.LANGUAGE, "def");
        super.attachBaseContext(setUpLocale(newBase, currentLanguageId));
    }

    // fix change language issue after migrate to AndroidX
    // https://stackoverflow.com/questions/55265834/change-locale-not-work-after-migrate-to-androidx
    @Override
    public void applyOverrideConfiguration(Configuration overrideConfiguration) {
        if (overrideConfiguration != null) {
            int uiMode = overrideConfiguration.uiMode;
            overrideConfiguration.setTo(getBaseContext().getResources().getConfiguration());
            overrideConfiguration.uiMode = uiMode;
        }
        super.applyOverrideConfiguration(overrideConfiguration);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。