码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2016-04-15 15:23:55      阅读:165      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!