改变系统字体引起页面布局混乱

系统某些设置的改变会引起app页面的重建,字体改变就属于其中的一种。如果AndroidManifest.xml中Activity的configChanges没有相关配置,那么页面就会重建,此时的重建是异常重建,可能会导致页面错乱;为了不使页面重新创建,可以在configChanges中配置fontScale,这样当系统字体发生改变时页面就不会重建,而是调用activity的onConfigChanged(),加入代码:


以上是网上介绍的常规操作,测试在绝大部分手机上是有效的。


但是,在小米手机上不可以,也就说AndroidManifest.xml对应Activity配置了fontScale后,onConfigChanged()在系统字体发生改变时并未回调。解决方法是:加上uiMode配置,此时,系统字体发生改变会就会回调onConfigChanged()。可是uiMode官方解释是:

The user interface mode has changed — the user has placed the device into a desk or car dock, or the night mode has changed. For more information about the different UI modes, see UiModeManager.

这和字体改变八竿子打不着,猜测是小米系统改的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容