首先需要有一个language的utils类来控制app内语言显示设置逻辑,
主要控制为resources.updateConfiguration和context.createConfigurationContext(configuration)
主要是因为android7.0以上改变了更新configuration的方法。
1.在BaseApplication里面重写attachBaseContext方法和onConfigurationChanged初始化改变语言
2.在BaseActivity中也需要重写attachBaseContext方法
3.在选择语言界面,保存当前选择的语言返回MainActivity时 调用reCreate方法,重启主界面
4.另外一种方法是关闭当前activity在重新启动一个MainActivity,根据个人需求解决选择
mActivity?.finish()
MainActivity.start(mContext!!, true)//重新开启的时候可以发一个标识 开启后马上把tab显示到设置界面
mActivity?.overridePendingTransition(0, 0) //切换时去除动画
具体代码请参考demo:https://github.com/liulilei/LanguagesSwitchKotlin
网友评论