Invalidate 英文废弃,无效的意思。不知道写api的人为什么不用redraw之类的更直接的词语而用这个词语。
大家都知道,view 调用 Invalidate 方法会导致重绘。
那么具体的情况是什么呢?
我写了一个demo去研究这个方法的作用。
在VISIBLE的情况下:
1.一个非容器的view 调用Invalidate():
会调用 此view的onDraw() ,重绘它自己。
2.一个容器的view调用Invalidate():
如果这个容器有背景,会调用 此view的onDraw() ,重绘它自己。
如果这个容器没有背景,不会调用 此view的onDraw() ,重绘它自己。
结论:不是调用Invalidate()就一定会导致重绘。
demo 地址: