Android 如果自定义视图扩展了ViewGroup,为什么不调用onDraw()?
A具有自定义视图。此视图的工作原理是Android 如果自定义视图扩展了ViewGroup,为什么不调用onDraw()?,android,android-custom-view,Android,Android Custom View,A具有自定义视图。此视图的工作原理是列表视图,但所有项目都在画布上绘制,因此它们不是视图组的子项。多说:我的视图不是视图组,它扩展了视图。现在我想使用Adapter接口通过getView(…)方法向我的视图提供数据但是。我一直被绘画问题所困扰。我试图将扩展从视图更改为视图组,这是我的困惑onDraw()方法未被调用!我真的不想发布我的代码,它在NDA下工作,所以我想知道-如果我们从视图扩展,而不是从视图扩展,那么视图组的绘制逻辑是否不相同?这是预期的行为,除非标志setWillNotDraw被强
列表视图
,但所有项目都在画布上绘制,因此它们不是视图组
的子项。多说:我的视图不是视图组
,它扩展了视图
。现在我想使用Adapter
接口通过getView(…)
方法向我的视图提供数据但是。我一直被绘画问题所困扰。我试图将扩展从视图
更改为视图组
,这是我的困惑<代码>onDraw()方法未被调用!我真的不想发布我的代码,它在NDA下工作,所以我想知道-如果我们从视图扩展,而不是从视图扩展,那么视图组的绘制逻辑是否不相同?这是预期的行为,除非标志setWillNotDraw
被强制为false。视图组不需要自己绘制任何图形,而是将图形委托给其子对象。如果要覆盖此行为,可以调用setWillNotDraw(false)
或覆盖dispatchDraw(Canvas Canvas)
而不是onDraw
这是预期的行为,除非标志setWillNotDraw
强制为false。视图组不需要自己绘制任何图形,而是将图形委托给其子对象。如果您想覆盖此行为,可以调用setWillNotDraw(false)
或覆盖dispatchDraw(Canvas Canvas)
而不是onDraw
也许这就是让您卡住的原因:也许这就是让你陷入困境的原因不完全是这样,它只是跳过了onDraw()
方法,它仍然为它自己绘制背景example@pskink不过对我来说,这很有帮助,谢谢你的0.02美元。@SergeyShustikov三美分或0.78格里夫尼亚;-)不完全是这样,它只是跳过了onDraw()
方法,它仍然为它自己绘制背景example@pskink不过对我来说,这很有帮助,谢谢你的0.02美元。@SergeyShustikov三美分或0.78格里夫尼亚;-)