我有一个始终不可见的自定义 ViewGroup。当 View 不可见时,我通过调用 removeAllViews()
清除所有 subview 。问题是当我更改可见性时,先绘制旧内容,然后再更新到新内容,这会导致屏幕闪烁。我尝试调用 destroyDrawingCache()
但没有帮助。我在这里遗漏了什么吗?
至于我的自定义 ViewGroup - 它唯一要做的就是覆盖 onMeasure()
和 onLayout()
以正确布置子项。
最佳答案
找到问题了!当我添加 child 时,我有一个 ScaleAnimation,其 fillAfter 标志设置为 true。这是导致问题的原因。删除 fillAfter 标志解决了这个问题。 它只发生在 ICS+ FYI 上,所以可能是硬件加速的问题。
关于Android 在可见性更改后绘制最后可见状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905323/