invalidate() postInvalidate() requestLayout()-几个刷新重绘的方法你弄清楚区别了吗

view的绘制流程大家都知道,我简单说一下:

onMesure() —测量view大小

onLayout() —对在viewgroup中的子view进行排版

onDraw() —画出view


invalidate() postInvalidate() requestLayout()这三个方法在自定义view中常用于刷新重绘view视图,在这里我们了解一下他们的区别。


invalidate() postInvalidate()

共同点:都是调用onDraw()方法,然后去达到重绘view的目的

区别:invalidate()用于主线程,postInvalidate()用于子线程


 requestLayout()

也可以达到重绘view的目的,但是与前两者不同,它会先调用onLayout()重新排版,再调用ondraw()方法。

转自:https://blog.csdn.net/zsr0526/article/details/64907322

view的绘制流程大家都知道,我简单说一下:

onMesure() —测量view大小

onLayout() —对在viewgroup中的子view进行排版

onDraw() —画出view


invalidate() postInvalidate() requestLayout()这三个方法在自定义view中常用于刷新重绘view视图,在这里我们了解一下他们的区别。


invalidate() postInvalidate()

共同点:都是调用onDraw()方法,然后去达到重绘view的目的

区别:invalidate()用于主线程,postInvalidate()用于子线程


 requestLayout()

也可以达到重绘view的目的,但是与前两者不同,它会先调用onLayout()重新排版,再调用ondraw()方法。

猜你喜欢

转载自blog.csdn.net/u013651026/article/details/80875345
今日推荐