如果自定义视图扩展了ViewGroup,为什么不调用onDraw()?

Ser*_*kov 1 android android-custom-view

有一个自定义视图。此视图原则上有效ListView,但是所有项目均基于Canvas绘制,因此它们不是的子级ViewGroup。多说:我的观点不是ViewGroup,而是延伸View。现在,我想使用Adapter接口通过getView(...)方法向我的视图提供数据。但是。我一直被绘画问题困扰。我试图将我的扩展范围从更改ViewViewGroup,这令人困惑。onDraw()方法不叫!我真的想避免发布在NDA下工作的代码,所以我想知道- ViewGroup如果我们从而View不是从扩展,绘制逻辑是否会不同ViewGroup

Bla*_*elt 6

这是预期的行为,除非标志setWillNotDraw被强制设置为false。ViewGroup不应自己做任何绘图,而是将绘图委托给他们的孩子。如果要覆盖此行为,则可以调用setWillNotDraw(false)或覆盖dispatchDraw(Canvas canvas)而不是onDraw

  • 并非如此,它只是跳过了`onDraw()`方法,例如仍然绘制自己的背景 (2认同)