Android切换语言不重启应用的解决方案

Android切换语言不重启应用的解决方案

代码:https://github.com/WaterYuanData/Camera2New/tree/SwitchLanguage/testlanguage

  • Android程序多语言切换不需要重新启动的解决方案
    多数给出的方案是重新启动activity或者重新setContentView,但是微信却能办到不重启又能修改语言,怎么办到的呢?
    首先定义一个多语言切换支持的自定义控件,整个app涉及到多语言的布局的地方都要使用它,控件初始化的时候获取string资源id,保存string资源id,settext的时候要更新string资源id,切换语言的时候用上文所提供的代码,设置完语言后(假设设置成中文),如果重新通过string资源id设置text,那么就会显示中文文字,如果我们不主动去更新,他们就不自觉了,所以我们需要对所有的多语言支持的自定义控件进行更新,方法就是通过发送
    消息给每一个activity,activity收到后,拿出自己的view,把全部子view列举一次,如果是多语言支持的自定义控件,就更新它

https://blog.csdn.net/u010499721/article/details/51260456

  • Android程序多语言切换不需要重新启动的解决方案
    android:configChanges="locale|layoutDirection 这里同样存在一个问题,4.2之前的系统只需要设置locale,4.2+就得多设置layoutDirection这个配置,不然onConfigurationChanged依旧不会被回调。
已验证必须layoutDirection 

参考:https://blog.csdn.net/q919233914/article/details/52237472

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容