- 自定义控件继承ViewGroup时,在调用
invalidate()
之后不执行onDraw方法,网上有说硬件加速原因,关闭之后还是无效,经过排查才发现View有个setWillNotDraw(flase/true)
方法,在继承View时为false,也就是说会执行onDraw,而ViewGroup中,以LinearLayout为例,不会执行onDraw方法,所以在初始化时setWillNotDraw(false)使其能够正常执行绘制方法。,
public void setWillNotDraw(boolean willNotDraw) {
setFlags(willNotDraw ? WILL_NOT_DRAW : 0, DRAW_MASK);
}