Android 计算view 的高度
上午在做一个QuickAction里嵌套一个ListView,在Demo运行没事,结果引入到我的项目里,发现我先让它在Button上面,结果是无视那个Button的高度,这很明显,就是那个Button的高度计算不正确。
看了下别人的建议,大概分为三类:
参数设置:
mRootView.measure(0, 0);
在draw之前回调:
ViewTreeObserver vto =view.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
int height =view.getMeasuredHeight();
int width =view.getMeasuredWidth();
}
});
全部监听:
//增加整体布局监听
ViewTreeObserver
vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new
OnGlobalLayoutListener(){
@Override
public
voidonGlobalLayout() {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int
height =view.getMeasuredHeight();
int
width =view.getMeasuredWidth();
}
});
鸡蛋,从外打破是食物,从内打破是生命。
人亦如是:从外打破是压力,从内打破是成长。
如果你等别人从外打破你,那么你注定是要成为别人的食物;
若是你自己从内打破,那么你会发现自己获得重生。

浙公网安备 33010602011771号