首页 > 移动平台 > 详细

安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)

时间:2016-04-15 15:21:54      阅读:253      评论:0      收藏:0      [点我收藏+]

1.activity中有个onWindowFocusChanged()方法,可以获取控件的大小,别的地方可能会调用过早导致获取不到实际的大小

 @Override
    public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus){//获取焦点
heightmiddle = oldconent_floatlayout.getTop();
MyLog.e(TAG, "控件初始高度:" + heightmiddle);
}
}

2.fragment 没有onWindowFocusChanged()方法,不过可以调用视图树ViewTreeObserver的方法来实现:

ViewTreeObserver observer= oldconent2_floatlayout.getViewTreeObserver();
/**对视图变化进行监听的观察者    代替activity的onWindowFocusChanged()方法*/
observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
        if (!isMeasured){  
isMeasured=true;
heightmiddle = oldconent_floatlayout.getTop();
MyLog.e(TAG, "Fragment控件初始高度:" + heightmiddle);
}
return true;
}
});


安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)

原文:http://www.cnblogs.com/donghaifeng-2016/p/5395570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!