android:configChanges="locale|layoutDirection" 语言变化配置

最近项目中出现了,切换语言,activity重启问题,记录一下切换语言重启的解决方式
添加属性:

android:configChanges to locale|layoutDirection

当改变语言设置后,该属性也会成newConfig中的一个mask位。所以ActivityManagerService(实际在ActivityStack)在决定是否重启Activity的时候总是判断为重启。
当在android:configChanges 中同时添加locale和layoutDirection时,activity是不会发生重启了,若项目需要将显示的textview重新setText,切换语言将完美解决。

官方文档里是这样说的
切换语言

To avoid Activity recreation when the locale changes, the Activity hosting the Compose code needs to opt out of locale configuration changes. To do so, you set
android:configChanges to locale|layoutDirection
为避免在发生语言区域更改时重新创建 Activity,托管 Compose 代码的 Activity 需要停用语言区域配置变更。为此,请将 android:configChanges 设置为 locale|layoutDirection。

还有一些其他的变更:

App display size //应用显示大小
Screen orientation //屏幕方向
Font size and weight //字体大小和粗细
Locale //语言区域
Dark mode versus light mode //深色模式与浅色模式
Keyboard availability //键盘可用性

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

相关阅读更多精彩内容

友情链接更多精彩内容