Android 计算view 的高度
上午在做一个QuickAction里嵌套一个ListView,在Demo运行没事,结果引入到我的项目里,发现我先让它在Button上面,结果是无视那个Button的高度,这很明显,就是那个Button的高度计算不正确。
看了下别人的建议,大概分为三类:
参数设置:
mRootView.measure( 0 , 0 ); |
在draw之前回调:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 |
ViewTreeObserver vto =view.getViewTreeObserver(); vto.addOnPreDrawListener( new
ViewTreeObserver.OnPreDrawListener() { @Override public
boolean onPreDraw() { int
height =view.getMeasuredHeight(); int
width =view.getMeasuredWidth(); } }); |
全部监听:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
//增加整体布局监听 ViewTreeObserver vto = view.getViewTreeObserver(); vto.addOnGlobalLayoutListener( new OnGlobalLayoutListener(){ @Override public voidonGlobalLayout() { view.getViewTreeObserver().removeGlobalOnLayoutListener( this ); int height =view.getMeasuredHeight(); int width =view.getMeasuredWidth(); } }); |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。