View.onMeasure()未调用

fhu*_*cho 10 layout android view

我有一个非常简单的自定义View with onMeasure()overriden.我onMeasure()根据背景Drawable决定大小.首次从xml创建View时,一切正常.但后来我以编程方式设置了不同的背景,因此View应该调整大小.View现在具有不同的背景,但它不会调整大小而onMeasure()不会调用.

我用尽了一切办法- ,requestLayout(),,forceLayout() -无任何影响.我究竟做错了什么?我只是希望我的视图调整大小.invalidate()setLayoutParams()

JRL*_*JRL -1

您是否尝试过显而易见的事情,即您的方法是如何声明的?

如果您没有添加@override注释,请添加它,然后查看编译器是否告诉您它没有覆盖任何内容。如果是这样,请检查 的名称和方法签名onMeasure

否则,请确保您了解何时measure()应该调用该方法:Android 如何绘制 Views