最近一个项目中使用了DayNight 主题来实现换肤效果。大概就是创建一个新的values-night把再新建一个对应资源,把夜间模式的颜色在这里设置下。这样再切换到夜间模式时就会使用values-night的资源。
但今天偶然发现一个问题,场景如下:
打开App进入主页后会查询活动接口,然后弹出一个Dialog弹窗,里面包含了WebView。但是当关闭时发现当前MainActivity的换肤本来在深夜模式下却显示了白天模式的UI。 不弹就没有问题。 根据弹窗内容一一排除,发现干掉WebView 就没有问题。
原因估计是API 影响的
webview resets daynight resources
https://developer.android.google.cn/jetpack/androidx/releases/appcompat?hl=vi:
目前解决方案 发现只要加载一次后就会正常显示所以如下 在Application初始化夜间模式中提前加载:
image.png
网友评论