我有一个非常简单的自定义视图与onMeasure()覆盖。我的onMeasure()根据可绘制的背景来决定大小。当第一次从xml创建视图时,一切都正常工作。但随后我通过编程设置了不同的背景,因此视图应该会调整大小。视图现在有了不同的背景,但它不会调整大小,也不会调用onMeasure()。
我尝试了所有的方法-- requestLayout(),forceLayout(),invalidate(),setLayoutParams() --都没有效果。我做错了什么?我只想让我的视图调整大小。
发布于 2011-10-14 21:38:40
问题是我在视图的onSizeChanged()中调用了setBackground()。我重构了代码,现在它可以工作了。
发布于 2011-10-14 20:55:41
你有没有尝试过显而易见的东西,比如你的方法是如何声明的?
如果您没有添加@override注释,请添加它,并查看编译器是否告诉您它没有覆盖任何内容。如果是,请检查onMeasure的名称和方法签名。
否则,请确保您理解应该何时调用measure()方法:How Android draws Views。
https://stackoverflow.com/questions/7767830
复制相似问题