getMeasuredHeight()
获取测量完的高度,只要在onMeasure方法执行完,就可以它获取到宽高,在自定义控件内部多使用这个使用view.measure(0,0)方法可以主动通知系统去测量,然后就可以直接使用它获取宽高。
getHeight()
必须在onLayout方法执行完后,才能获得宽高。
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
headerView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int headerViewHeight = headerView.getHeight();
//直接可以获取宽高
}
});
本文介绍了在Android自定义控件中如何正确获取控件的高度。getMeasuredHeight()方法可以在onMeasure方法执行后立即获取控件尺寸;而getHeight()则需要等到onLayout方法执行完毕才能调用。此外还提供了一种通过监听全局布局变化来获取高度的方法。

3344

被折叠的 条评论
为什么被折叠?



