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

时间:2016-12-13 12:17:23

标签: android android-custom-view

A有自定义视图。此视图基于原则ListView,但所有项目都使用Canvas,因此它们不是ViewGroup的子项。多说:我的视图不是ViewGroup,而是View。现在我想使用Adapter接口通过getView(...)方法向我的视图提供数据。的即可。我一直被绘制问题困扰。我试图将View的延伸更改为ViewGroup,这让我感到困惑。 onDraw()方法未被调用!我真的想避免发布我的代码,它在 NDA 下工作,所以我想知道 - 如果我们从ViewGroup延伸,View绘图逻辑是不一样的,而不是来自ViewGroup

1 个答案:

答案 0 :(得分:5)

除非标志setWillNotDraw被强制为假,否则

是预期的行为。 ViewGroup不应该自己做任何绘图,而是将绘图委托给他们的孩子。如果您要覆盖此行为,可以拨打setWillNotDraw(false)或覆盖dispatchDraw(Canvas canvas),而不是onDraw