调用invalidate时我有这种奇怪的行为。 我创建了一个包含一堆图像视图的自定义视图组。
我使用on touch方法设置了一个onTouch监听器来滚动视图。 通过使用logcat,我知道所有代码在滚动距离方面都是正确的。
现在,由于某种原因,在调用this.invalidate()之后没有调用onLayout方法。当我尝试滚动时,屏幕上没有任何变化。但是,在暂停活动并恢复活动后,屏幕将移动我滚动的数量。
我没有阻止UI线程,因为没有什么可以阻止它。在任何情况下,我都尝试过postInvalidate(),但没有任何工作。
任何人都有什么血腥的想法?
答案 0 :(得分:1)
invalidate()
不会重新布局视图,只会导致重绘视图。如果你想重新发送它(它会调用onLayout()
),你还必须拨打requestLayout()
。