2013-09-24 27 views

回答

0

只需從佈局獲取視圖樹觀察者並將偵聽器附加到它。現在在它裏面,你可以得到它的高度或寬度,並且你只需要去掉全局佈局偵聽器。請注意,對於android sdk> 16,您必須使用mContainer.getViewTreeObserver()。removeOnGlobalLayoutListener(this);

private ViewGroup mContainer; 

@Override 
    public void onResume() { 
     super.onResume(); 
     final ViewTreeObserver observer = mContainer.getViewTreeObserver(); 
     observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() { 
       int layoutHeight = mContainer.getHeight(); 
       rowHeight = layoutHeight/getResources().getInteger(R.integer.rows); 
       mContainer.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
       if (Build.VERSION.SDK_INT >= 16) { 
        mContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this); 
       } 
      }); 
     } 
    } 
0
  1. 如果要動態地添加任何意見,父母,那麼你可以通過 利用重力,重量等進行調整,使其可以兼容 所有resolutions.Never給硬編碼值。
  2. 您要求獲得佈局的高度,可以使用getHeight()使用 完成。
相關問題