2011-05-31 69 views
1

我已经创建了linearlayoutlayout:height="fill_parent"我设置了3个按钮和一个TextView。我能看到所有。但是当我想要得到linearlayout的高度。我在onCreate方法中使用了下面的代码。 I am getting linear layout height as zero.但我的linearlayout高度是填充父项。还能看到我添加的元素。为什么我没有得到我的线性布局的实际高度。为什么线性布局的高度为零

LinearLayout mainLayout = (LinearLayout) findViewById(R.id.main_linearlayout); 
System.out.println("...Height..."+mainLayout.getMeasuredHeight()); 

感谢 迪帕克

+0

你可以试试这个我已经回答了在这里 http://stackoverflow.com/questions/11964499/how-to-get-height-of-linearlayout/15803364#15803364 – 2013-04-04 05:47:55

回答

2

参考这个问题

Can't get height of Widgets

+0

感谢SAURABH,我使用以下代码布局的高度@Override public void onWindowFocusChanged(boolean hasFocus){ // TODO自动生成方法存根 super.onWindowFocusChanged(hasFocus); System.out.println(“... 111Height ...”+ mainLayout.getMeasuredHeight()); } – 2011-05-31 12:20:17

0

直到onCreate,OnResume,onStart视图尚未创建。 所以,如果你想获得高度的角度还是宽度做以下,并得到它

 observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() 
     { 
      @Override 
      public void onGlobalLayout() 
      { 
       SearchResultActivity.this.sideIndexHeight = SearchResultActivity.this.sideIndex.getHeight(); 
       ViewTreeObserver obs = sideIndex.getViewTreeObserver(); 
       obs.removeGlobalOnLayoutListener(this); 
      } 
     }); 

请获得新TreeObserver删除,否则你将得到一个异常,TreeObserver是不是活

覆盖onWindowFocusChanged方法,你可以看到高度或宽度。但是,如果您的活动是作为子活动启动的,那么onWindowFocusChanged方法将不会被调用。所以在这种情况下使用上面的一个。

相关问题