我在 LinearLayout 中有一个 imageView,当我在该 LinearLayout 上调用 invalidate 时,它不会失效,直到手机休眠并再次唤醒。
是否有强制 LinearLayout 立即失效?
来自有关无效功能的android文档
使整个视图无效。如果视图可见,onDraw(android.graphics.Canvas) 将在未来的某个时间点被调用。这必须从 UI 线程调用。要从非 UI 线程调用,请调用 postInvalidate()。
这已经超过 3 年了,所以我不期待回复,但如果你不认为你LinearLayout
的无效是因为你没有接到任何电话onDraw()
,请查看https://stackoverflow.com/a/ 17595671/852795:
默认情况下,所有 ViewGroup 子类都不调用它们的
onDraw
方法,你应该通过调用setWillNotDraw(false)
链接来启用它
从文档:
默认情况下,该标志未在 View 上设置,但可以在某些 View 子类上设置,例如 ViewGroup。通常,如果您覆盖,
onDraw(android.graphics.Canvas)
您应该清除此标志。
尝试添加setWillNotDraw(false);
到您的 LinearLayout。