Android 查看异常行为
Android View bizarre behaviour
我在调用 invalidate 时有这种奇怪的行为。
我制作了一个包含一堆图像视图的自定义视图组。
我使用 on touch 方法设置了一个 onTouch 侦听器来滚动视图。
我知道所有代码在滚动距离等方面都是正确的,使用 logcat.
现在,由于某些原因,在我调用 this.invalidate() 后,onLayout 方法没有被调用。当我尝试滚动时,屏幕上没有任何变化。但是,在我暂停 activity 并恢复它之后,屏幕将移动我滚动的量。
我没有阻止 UI 线程,因为没有什么可以阻止它。无论如何,我已经尝试过 postInvalidate() 但没有任何效果。
有人知道发生了什么事吗?
invalidate()
不会重新布局视图,只会导致重绘视图。如果您想重新布局它(这将调用 onLayout()
),您还必须调用 requestLayout()
.
我在调用 invalidate 时有这种奇怪的行为。 我制作了一个包含一堆图像视图的自定义视图组。
我使用 on touch 方法设置了一个 onTouch 侦听器来滚动视图。 我知道所有代码在滚动距离等方面都是正确的,使用 logcat.
现在,由于某些原因,在我调用 this.invalidate() 后,onLayout 方法没有被调用。当我尝试滚动时,屏幕上没有任何变化。但是,在我暂停 activity 并恢复它之后,屏幕将移动我滚动的量。
我没有阻止 UI 线程,因为没有什么可以阻止它。无论如何,我已经尝试过 postInvalidate() 但没有任何效果。
有人知道发生了什么事吗?
invalidate()
不会重新布局视图,只会导致重绘视图。如果您想重新布局它(这将调用 onLayout()
),您还必须调用 requestLayout()
.