NO.1前言
最近在研发项目的时候 , 有个模块调用功能;
点击搜索框 , 进入页面 , 出现了黑色过渡页面 , 效果如下:
NO.2排查问题
个人在排查此问题的时候 , 用了一台可复现的手机:1+ 8( 13) , 检查手机的黑暗模式、夜间模式都是关闭的 。
那么黑色过渡页面是如何出现的?
最终发现出现问题手机的 版本较高 , 推测是 版本升级带来的行为变更 。
我找来一台没有问题的手机 , 记录了 版本为103.0.5060.129
然后把这台手机的 升级到 111.0.5563.58 , 果然出现了问题 。
比对这两个版本 负责背景相关的代码:
103.0.5060.129:/
111.0.5563.58:/
高版本返回黑色背景的逻辑多了一个 .() 或条件 。
通过注释中的todo 发现 , 高版本修复了低版本的一个bug:/p//
如果应用程序偏向深色主题 , 则将背景改为暗色 。
以前的只有在启用了强制黑暗或同色系暗色系启用时 , 才会绘制暗色背景 。
所以 .() 应该是判断了当前的主题是否是深色主题 。
文章插图
我们继续追踪发现 , 的返回值来自于该方法:
//src
//src
我的手机是大于 Q的 , 这里的是的 , theme为 :Theme:
可以看到 我们使用 Theme 的= false , 系统认为是深色主题 , 所以在高版本中 , 当背景色没有指定时 , 系统使用了黑色作为背景色 。
NO.3修复方案
再看看这三个条件 , 在照顾老逻辑不变的基础上 , 更适合的是调整增量条件为 false 。
【Android 打开webView黑屏闪烁问题排查】而这个条件的原理我们也了解了 , 调整父类主题为明亮即可::Theme.Light
- Android 操作系统的内存回收机制
- 人类怎么打开超能力,人类有超能力吗
- 抖音打开一会就无反应怎么回事
- 千年西街“深处更香”来看看她的正确“打开”方式 中国之最系列纪录片
- android bluedroid是什么设备
- 电脑点击我的计算机无法打开,我的电脑双击打不开怎么办
- android9 无法使用数据库,使用greenDao操作本地数据库
- Android一种字幕效果的实现
- Android学习-运用手机多媒体
- 用手机打开摄像头,屋里人看到打开了吗