自定义viewGroup的时候你一定会迫不及待的暴躁如我的去在onDraw方法中绘制,但是你会发现,onDraw方法根本就不会被调用(简直是日了哈士奇了)。
其实看下viewGroup中的源码,上面就已经写的清楚了。
ViewGroup doesn`t draw by default viewGroup在默认情况下不进行绘制,也就是说viewGroup默认是不会调用onDraw方法的。(我擦类,这怎么办)
再看view的源码中有一个方法:setWillNotDraw
翻一下注释,就是如果view自己不做任何的绘制,需要设置这个flag未以后做打算,默认的,view中这个flag不会设置,但是view的子类比如ViewGroup可能会设置。
最重要的是Typically后面的那句话。如果你想要重写onDraw方法,你必须要清除这个flag
所以如果你想要在自定义viewgroup中重写onDraw方法,必须在构造函数中调用setWillNotDraw(false);