标签: android-view-invalidate

为什么在invalidate之后直接调用requestLayout

我正在学习自定义视图,并希望了解invalidate()requestLayout().

请参考这个答案及其图表:

/sf/answers/1809237041/

invalidate() 告诉Android视图的状态已经改变,需要重新绘制.

requestLayout() 表示视图的大小可能已更改,需要重新测量,然后重新绘制.

invalidate()将调用dispatchDraw(),draw()onDraw()因此重新呈现视图.

requestLayout() 另一方面,从测量再到再次渲染,几乎可以做任何事情.

为什么那么多的例子(甚至是TextView源代码)都会调用invalidate(),然后requestLayout()就在下一行呢?

android android-view android-view-invalidate

13
推荐指数
2
解决办法
6679
查看次数

ListView invalidate() 和 invalidateViews() 的区别?

ListView.invalidate() 和 ListView.invalidateViews() 有什么区别?

对我来说,单独 invalidate() 是行不通的。而 invalidateViews() 的工作方式正是我想要的,即重绘列表项。

android android-listview android-fragments android-view-invalidate

5
推荐指数
1
解决办法
4557
查看次数