首先需要有一個language的utils類來控制app內(nèi)語言顯示設(shè)置邏輯,
主要控制為resources.updateConfiguration和context.createConfigurationContext(configuration)? ?
主要是因為android7.0以上改變了更新configuration的方法。
1.在BaseApplication里面重寫attachBaseContext方法和onConfigurationChanged初始化改變語言
2.在BaseActivity中也需要重寫attachBaseContext方法
3.在選擇語言界面,保存當(dāng)前選擇的語言返回MainActivity時 調(diào)用reCreate方法,重啟主界面
4.另外一種方法是關(guān)閉當(dāng)前activity在重新啟動一個MainActivity,根據(jù)個人需求解決選擇
mActivity?.finish()
MainActivity.start(mContext!!, true)//重新開啟的時候可以發(fā)一個標(biāo)識 開啟后馬上把tab顯示到設(shè)置界面
mActivity?.overridePendingTransition(0, 0) //切換時去除動畫
具體代碼請參考demo:https://github.com/liulilei/LanguagesSwitchKotlin