2013-09-24 30 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()使用 完成。
相关问题