美文网首页
Android令人困惑的WindowBackground

Android令人困惑的WindowBackground

作者: 彼时年少_f3d1 | 来源:发表于2021-02-08 15:47 被阅读0次

    在做右滑退出Activity时发现一个诡异的现象:Activity出现了一个黑底。检查了一下,theme中windowbackgound设成了透明色了,布局中也没有设置黑色,嗯。。会不会是什么地方更改了window背景,于是遍历把view树的背景都清除了,一运行还是黑色。。

    无奈只能去看源码了,经过层层摸瓜,终于发现了其中的奥妙,在DecorView中有这么一段

    如果windowBackground为不为null(我遇到的case应该是一个色值为透明的ColorDrawable),则enforceNonTranslucentBackground,这个方法是什么鬼

    于是乎,透明色变成了黑色!问题终于找到了!

    要解决问题,必须不能走到强制色值不透明的地方,问题就出在window.isTranslucent返回了false,然后这个值只能通过theme去指定,改了之后,问题解决了。。。

    另外当设置了空的windowBackground,会从主题中去取windowBackground和backgroundFallbackDrawable,当这两个都为null时,会创建一个纯黑色的ColorDrawable。

    这也解释了为什么对window设置windowBackground为空时不生效的问题!

    相关文章

      网友评论

          本文标题:Android令人困惑的WindowBackground

          本文链接:https://www.haomeiwen.com/subject/vtckpxtx.html