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);
}
网友评论