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);
    }

你可能感兴趣的:(AndroidX迁移填坑指南)