Android绘制中requestLayout,invalidate和postInvalidate的异同
分类:
文章
•
2024-05-20 16:43:40

(图片来源忘记了)
简单的区别为:
1、invalidate和postInvalidate都会使view重绘(即调用onDraw方法),不同的是,invalidate是在UI线程自身中使用,而postInvalidate在非UI线程中使用。
2、当view确定自身已经不再适合现有的区域时,该view本身调用onLayout来要求父类的视图重新调用三大流程来重新设置自己位置。例如动态移动一个View的位置,或者View的大小、形状发生了变化。