2014-09-13 88 views
0

所以我扩展了一个视图类以便对其进行定制,并且我想知道在给定对象时创建的上下文会占用多少高度/宽度被构造,但在物体被绘制之前。如何在绘制之前正确测量视图的高度

我已经使用了下面的代码,但是getMeasuredHeight()的输出与我在绘制该元素之后调用getHeight()方法的输出不同。

measure(ViewGroup.LayoutParams.MATCH_PARENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT); 

    getMeasuredHeight(); 
+0

我建议你使用'OnPreDrawListener'在'ViewTreeObserver',记得为了让布局绘制返回TRUE;。 – Wakim 2014-09-13 20:16:29

回答

1

请尝试以下观察员

{ 
ViewTreeObserver treeObserver=measuringView.getViewTreeObserver(); 
      treeObserver.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 

     @Override 
     public void onGlobalLayout() { 
     int height=measuringView.getHeight(); 
     } 
     } 
} 
+0

非常好的干净的答案正是我想要的感谢你。 – Akarimi 2014-09-15 03:19:57

相关问题