自定义视图在滚动视图中如何知道其可见矩形是否已更改?

时间:2016-05-06 08:59:21

标签: android horizontalscrollview

现在我有一个CustomView并且它的宽度很大,所以我将它放入HorizontalScrollView。为了获得更好的性能,我只需在其onDraw()方法中绘制此视图的可见矩形。现在我遇到一个问题,当我用手指滚动视图时,视图如何知道它的可见rect已被更改并通过调用postInvalidate()来刷新其内容。

非常感谢有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

ScrollView应该在滚动到可见区域时自动绘制视图。你不需要调用postInvalidate()。只有在视图内容发生变化且需要重新绘制时,才会使视图无效。不要担心滚动视图。如果您想避免为不可见的东西执行不必要的绘图代码,请在onDraw()中使用Canvas的quickReject方法。或者Canvas的getClipBounds方法,以找出当前可见的视图部分。