我不明白什么时候应该使用 Measure() 方法,如果 onMeasure() 是测量什么,甚至不需要调用 measure。
谢谢。
Measure实际上调用onMeasure:
视图的实际测量工作在 onMeasure(int, int) 中执行,由该方法调用。因此,只有 onMeasure(int, int) 可以而且必须被子类覆盖。
在幕后,Measure 本质上缓存了当前值,因此仅在调整元素大小时才调用 onMeasure。这样,您就不需要在 onMeasure 中实现逻辑来确定布局是否发生了变化。
我使用的一个例子是:你想在实际绘制之前知道它的大小。在调用之前Measure()
,系统不知道将如何将某些内容绘制到屏幕上的实际物理尺寸。通过调用Measure()
,如果其他逻辑依赖于它,您可以了解某物将有多大。