view getMeasuredHeight getHeight区别

这个知识点老是容易忘记,还是 动手记下来吧。

官网链接

view getMeasuredHeight getHeight区别_第1张图片

通过上面的描述

getMeasuredHeight是用来判断布局信息的时候使用到的,onLayout中使用。而getHeight是在onDraw中使用。

通过这两点就可以得出区别

按照通常的说法就是,getMeasuredHeight得到的是view的实际高度,而getHeight得到的是view的显示高度(最大也就是屏幕高度)。

我们可以通过onLayoutonDraw来佐证这个观点。

既然是onLayout,那么影响的必然是布局,如果有一个两个view分别为view1,view2。

view2显示在view1的下方。那么在布局onLayout的时候 view2位置必然是要算上view1的高度的,所以这个高度应该是“稳定”的,不会因为用户滑动屏幕而出现变化的。
—》getMeasuredHeight是控件的实际高度,与屏幕无关。

而onDraw则是在view绘画的时候使用的。 getHeight既然是在绘画的时候调用,那么必然是显示多少绘画多少,所以这个高度会随着view在屏幕的显示情况来onDraw,所以getHeight是随着view在屏幕的显示而不同的。
—》getHeight得到的是view的显示高度,跟view在屏幕的显示情况有关。

你可能感兴趣的:(Android,Step)