Android 如果onMeasure()进行所有实际测量,那么测量点()是什么?

Android 如果onMeasure()进行所有实际测量,那么测量点()是什么?,android,Android,我不明白什么时候应该使用Measure()方法,如果onMeasure()是测量的对象,并且Measure甚至不需要调用 谢谢。测量实际上需要测量: 视图的实际测量工作在onMeasure(int,int)中执行,该方法调用onMeasure。因此,只有onMeasure(int,int)可以而且必须被子类重写 在幕后,Measure本质上缓存当前值,因此只有在调整元素大小时才会调用onMeasure。这样,您就不需要在onMeasure中实现逻辑来确定布局是否已更改。我使用的一个示例是:您想在

我不明白什么时候应该使用Measure()方法,如果onMeasure()是测量的对象,并且Measure甚至不需要调用


谢谢。

测量实际上需要测量:

视图的实际测量工作在onMeasure(int,int)中执行,该方法调用onMeasure。因此,只有onMeasure(int,int)可以而且必须被子类重写


在幕后,Measure本质上缓存当前值,因此只有在调整元素大小时才会调用onMeasure。这样,您就不需要在onMeasure中实现逻辑来确定布局是否已更改。

我使用的一个示例是:您想在实际绘制某个对象之前知道其大小。在调用
Measure()
之前,系统不知道将如何在屏幕上绘制对象的实际物理大小。通过调用
Measure()
,您可以发现如果其他逻辑依赖于某个对象,那么该对象将有多大。

因此,如果您有一个对宽度和高度具有不同约束的/other Measure(),则只会再次调用onMeasure。@user2913567它可能在最近的版本中有所更改,但是IIRC不应该再次调用它(您可以使用getMeasuredHeight和getMeasuredWidth直接获取值)