Android - 在动态插入的自定义视图中,onDraw方法没有被调用

3
我有一个自定义视图正在动态插入,但是onDraw没有被调用。起初我制作了自定义视图而不进行动态插入,它可以正常工作,但是当将其移动到我的工作代码库时,即使视图构造函数被调用并且onMeasure也被调用,我仍无法使onDraw被调用。我尝试在各个地方放置invalidate()postInvalidate()调用,但它们似乎不能强制视图绘制。两个版本的视图层次结构看起来都一样,但我迷失了方向。

有人能帮忙吗?

编辑:进一步测试表明,在模拟器上已经调用了onDraw,但在手机上没有调用。此外,手持设备上的onSizeChanged具有正确的值,但在模拟器上所有值都为0。

编辑:我一直在尝试,但仍然无法解决问题,因此已经为此设置了悬赏。如果需要更多的代码/ xml /信息,请告诉我。

2个回答

1

我把 View 改成了 TextView,现在似乎可以工作了,尽管我有点困惑为什么 View 没有起作用。


1

这听起来很像我最近遇到的问题,与我的第一个自定义视图有关。您是否注意到,在加载视图层次结构时,您的自定义视图是否显示出来?无论如何,它们是否在线框预览中呈现布局?

如果是后者,则是因为requestLayout()没有被调用(加载视图层次结构会在每个视图上调用它-这就是为什么它会使视图显示出来)。我还发现类似的错误已经在这里报告过。


谢谢您的答复,但是视图在层次结构查看器中不显示,当requestLayout被覆盖并带有日志语句时,它肯定会被调用。实际上,在模拟器上进行测试时,onDraw现在被调用,但画布具有全屏幕而不仅仅是视图的尺寸。 - Martyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接