自定义View执行invalidate()方法,为什么有时候不会回调onDraw

自定义一个view时,重写onDraw。

调用view.invalidate(),会触发onDraw和computeScroll()。前提是该view被附加在当前窗口上

view.postInvalidate(); //是在非UI线程上调用的

自定义一个ViewGroup,重写onDraw。

onDraw可能不会被调用,原因是需要先设置一个背景(颜色或图)。

表示这个group有东西需要绘制了,才会触发draw,之后是onDraw。

因此,一般直接重写dispatchDraw来绘制viewGroup

自定义一个ViewGroup

dispatchDraw会调用drawChild

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容