Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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-onDraw未在动态插入的自定义视图中调用_Android_Custom View_Ondraw - Fatal编程技术网

Android-onDraw未在动态插入的自定义视图中调用

Android-onDraw未在动态插入的自定义视图中调用,android,custom-view,ondraw,Android,Custom View,Ondraw,我有一个动态插入的自定义视图,并且没有调用onDraw。我最初在没有动态插入的情况下创建了自定义视图,它工作得很好,但是当将其移动到我的工作代码库时,我无法调用onDraw,即使调用了视图构造函数,也调用了onMeasure。我试着在这个地方放置invalidate()和postInvalidate()调用,但它们似乎并不强迫视图绘制。两个版本的视图层次结构看起来都一样,我迷路了 有人能帮忙吗 编辑:更多的测试表明,onDraw在模拟器上被调用,而不是在手机上。此外,手机上的onSizeChan

我有一个动态插入的自定义视图,并且没有调用
onDraw
。我最初在没有动态插入的情况下创建了自定义视图,它工作得很好,但是当将其移动到我的工作代码库时,我无法调用
onDraw
,即使调用了视图构造函数,也调用了
onMeasure
。我试着在这个地方放置
invalidate()
postInvalidate()
调用,但它们似乎并不强迫视图绘制。两个版本的视图层次结构看起来都一样,我迷路了

有人能帮忙吗

编辑:更多的测试表明,
onDraw
在模拟器上被调用,而不是在手机上。此外,手机上的
onSizeChanged
具有正确的值,但在模拟器上,这些值均为0


编辑:我一直在玩弄它,但还是哪儿也去不了,所以我悬赏了它。如果您需要更多的代码/xml/info,请告诉我。

这听起来很像我最近在第一个自定义视图中遇到的问题。您是否注意到,在加载视图层次结构时,您的自定义视图是否会显示?不管怎样,它们是否显示在线框预览中


如果是后一种情况,则不会调用
requestLayout()
(加载视图层次结构会在每个视图上调用它-这就是为什么它会显示视图)。我还发现已经报告了一个类似的bug

我将
视图
更改为
文本视图
,现在它似乎可以工作了,尽管我有点困惑
视图
为什么不能工作。

谢谢你的回答,但是视图不会显示在层次结构查看器中,当requestLayout被log语句覆盖时,它肯定会被调用。实际上,现在正在调用emulator-onDraw上的测试,但是画布具有全屏幕的尺寸,而不仅仅是视图。