这个知识点老是容易忘记,还是 动手记下来吧。
通过上面的描述
getMeasuredHeight
是用来判断布局信息的时候使用到的,onLayout
中使用。而getHeight
是在onDraw
中使用。
通过这两点就可以得出区别
按照通常的说法就是,getMeasuredHeight
得到的是view
的实际高度,而getHeight
得到的是view
的显示高度(最大也就是屏幕高度)。
我们可以通过onLayout
和onDraw
来佐证这个观点。
既然是onLayout,那么影响的必然是布局,如果有一个两个view分别为view1,view2。
view2显示在view1的下方。那么在布局onLayout
的时候 view2位置必然是要算上view1的高度的,所以这个高度应该是“稳定”的,不会因为用户滑动屏幕而出现变化的。
—》getMeasuredHeight是控件的实际高度,与屏幕无关。
而onDraw则是在view绘画的时候使用的。 getHeight
既然是在绘画的时候调用,那么必然是显示多少绘画多少,所以这个高度会随着view在屏幕的显示情况来onDraw
,所以getHeight
是随着view在屏幕的显示而不同的。
—》getHeight得到的是view的显示高度,跟view在屏幕的显示情况有关。