我有一个动态插入的自定义视图,并且没有调用onDraw
。我最初在没有动态插入的情况下创建了自定义视图,并且工作正常,但是当将其移动到我的工作代码库时,即使视图构造函数被调用,onDraw
也无法调用onMeasure
。{{1也被调用了。我已经尝试在这个地方放置invalidate()
和postInvalidate()
来电,但它们似乎并没有强迫视图绘制。对于这两个版本,视图层次结构看起来都相同,而我丢失了。
有人可以帮忙吗?
编辑:更多的测试表明,onDraw
正在仿真器上调用,而不是手机。手机上的onSizeChanged
也有正确的值,但在仿真器上的值都是0.
答案 0 :(得分:1)
这听起来很像我最近的一个问题,我的第一个自定义视图。在加载视图层次结构时,您是否注意到自定义视图是否显示?无论如何它们是否在线框预览中显示出来?
如果是后者,那么requestLayout()
不会被调用(加载视图层次结构会调用每个视图 - 这就是为什么它会显示视图)。我还发现已经报告过类似的错误here。
答案 1 :(得分:1)
我已将View
更改为TextView
并且它现在似乎有效,但我对为什么 View
没有'感到困惑工作。