2013-09-24 4 views

답변

0

레이아웃에서 뷰 트리 옵저버를 가져 와서 청취자를 첨부하십시오. 이제 그 안쪽에 너비 또는 높이를 가져올 수 있으며 전체 레이아웃 수신기를 연결 해제하기 만하면됩니다. 안드로이드 SDK> 16의 경우 mContainer.getViewTreeObserver(). removeOnGlobalLayoutListener (this);를 사용해야합니다. 당신이 부모에게 동적으로 뷰를 추가하는 경우는 resolutions.Never 하드 코드를 제공 모두 호환 을 할 수 있도록

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. , 당신은 등 중력, 무게를 사용하여 조정할 수 있습니다 값.
  2. 레이아웃 높이를 얻으려면 getHeight()를 사용하여 요청할 수 있습니다.
관련 문제