动态获取布局的高度和宽度

时间:2014-07-12 07:59:18

标签: android android-layout

在我的应用程序中,我在布局中添加了许多视图,其中包含以下属性,如何在运行时获得正确的布局高度

        LinearLayout ll = new LinearLayout(this);
        ll.setLayoutParams(new LayoutParams(840,LayoutParams.WRAP_CONTENT));
        ll.setOrientation(LinearLayout.VERTICAL);

        ll.addView(view1); 
        ll.addView(view2);

        ll.getHeight();

如何在这一点上获得布局的高度考虑添加view1和view2,而不管我的属性(LayoutParams.WRAP_CONTENT),因为它总是向我返回0?

2 个答案:

答案 0 :(得分:2)

请尝试这种方式,希望这有助于您解决问题。

int width;
int height;

ll.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
   @Override
   public void onGlobalLayout() {
     width = view.getMeasuredWidth();
     height = view.getMeasuredHeight();

   }
});

答案 1 :(得分:1)

你可以打电话

ll.post(new Runnable()
{
    public void run()
    {
        ll.getHeight(); 
    }
});

添加子视图后,这将为您提供ll的高度。