Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果自定义视图扩展了ViewGroup,为什么不调用onDraw()?_Android_Android Custom View - Fatal编程技术网

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

Android 如果自定义视图扩展了ViewGroup,为什么不调用onDraw()?,android,android-custom-view,Android,Android Custom View,A具有自定义视图。此视图的工作原理是列表视图,但所有项目都在画布上绘制,因此它们不是视图组的子项。多说:我的视图不是视图组,它扩展了视图。现在我想使用Adapter接口通过getView(…)方法向我的视图提供数据但是。我一直被绘画问题所困扰。我试图将扩展从视图更改为视图组,这是我的困惑onDraw()方法未被调用!我真的不想发布我的代码,它在NDA下工作,所以我想知道-如果我们从视图扩展,而不是从视图扩展,那么视图组的绘制逻辑是否不相同?这是预期的行为,除非标志setWillNotDraw被强

A具有自定义视图。此视图的工作原理是
列表视图
,但所有项目都在画布上绘制,因此它们不是
视图组
的子项。多说:我的视图不是
视图组
,它扩展了
视图
。现在我想使用
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格里夫尼亚;-)