自定义viewGroup的时候你一定会迫不及待的暴躁如我的去在onDraw方法中绘制,但是你会发现,onDraw方法根本就不会被调用(简直是日了哈士奇了)。

其实看下viewGroup中的源码,上面就已经写的清楚了。

自定义viewGroup 为什么不走 onDraw方法?

ViewGroup doesn`t draw by default viewGroup在默认情况下不进行绘制,也就是说viewGroup默认是不会调用onDraw方法的。(我擦类,这怎么办)

再看view的源码中有一个方法:setWillNotDraw

自定义viewGroup 为什么不走 onDraw方法?

翻一**释,就是如果view自己不做任何的绘制,需要设置这个flag未以后做打算,默认的,view中这个flag不会设置,但是view的子类比如ViewGroup可能会设置。

最重要的是Typically后面的那句话。如果你想要重写onDraw方法,你必须要清除这个flag

所以如果你想要在自定义viewgroup中重写onDraw方法,必须在构造函数中调用setWillNotDraw(false);

相关文章:

  • 2021-09-15
  • 2021-08-15
  • 2022-12-23
  • 2021-12-10
  • 2021-06-06
  • 2022-12-23
  • 2022-12-23
  • 2021-05-24
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-03-10
  • 2021-08-23
  • 2022-03-06
  • 2021-04-29
相关资源
相似解决方案