1

我在 LinearLayout 中有一个 imageView,当我在该 LinearLayout 上调用 invalidate 时,它​​不会失效,直到手机休眠并再次唤醒。

是否有强制 LinearLayout 立即失效?

4

2 回答 2

0

来自有关无效功能的android文档

使整个视图无效。如果视图可见,onDraw(android.graphics.Canvas) 将在未来的某个时间点被调用。这必须从 UI 线程调用。要从非 UI 线程调用,请调用 postInvalidate()。

于 2013-01-27T22:17:50.917 回答
-1

这已经超过 3 年了,所以我不期待回复,但如果你不认为你LinearLayout的无效是因为你没有接到任何电话onDraw(),请查看https://stackoverflow.com/a/ 17595671/852795

默认情况下,所有 ViewGroup 子类都不调用它们的onDraw方法,你应该通过调用setWillNotDraw(false) 链接来启用它

从文档:

默认情况下,该标志未在 View 上设置,但可以在某些 View 子类上设置,例如 ViewGroup。通常,如果您覆盖, onDraw(android.graphics.Canvas)您应该清除此标志。

尝试添加setWillNotDraw(false);到您的 LinearLayout。

于 2016-05-20T19:24:59.043 回答