我有一个自定义视图正在动态插入, onDraw 没有被称为。最初,我在没有动态插入的情况下进行了自定义视图,并且可以正常工作,但是当将其移至我的工作代码库时,我无法获得 onDraw 要被召唤,即使视图构造函数被调用, onMeasure 也被调用。我尝试了放置 invalidate()postInvalidate() 在这个地方打电话,但它们似乎并没有迫使视图绘制。两个版本的视图层次结构看起来都一样,我迷路了。

谁能帮忙?

编辑:更多的测试表明 onDraw 被调用模拟器,但没有被调用。还 onSizeChanged 手机上有正确的值,但是在模拟器上,值为0。

编辑:我一直在玩它,但仍然无法到达任何地方,所以在上面放了赏金。如果您需要更多代码 / XML /信息,请告诉我。

有帮助吗?

解决方案 2

我改变了 ViewTextView 尽管我对 为什么View 不起作用。

其他提示

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

如果是后者,那就是 requestLayout() 这不会被调用(加载视图层次结构在每个视图上调用 - 这就是为什么显示视图显示的原因)。我还发现已经报道了类似的错误 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top