2011-10-08 2 views
2

이 메소드는 예를 들어 동적으로 검색 할 때 올바른 값을 반환합니다. onCreate()에서 유일한 예외는 xml 레이아웃 파일에서 크기가 정의되지 않은 것처럼 지정된 경우입니다 (예 : 'wrapping content'등) 등의 값을 검색하는 방법이 있습니까 ???안드로이드 layoutParams getWidth() getHeight()

답변

7

올바른 너비와 높이를 반환해야합니다. onCreate는 자식 뷰의 레이아웃이 완료되기 전에 호출됩니다. 따라서 너비와 높이가 아직 계산되지 않았습니다. 높이와 너비를 얻으려면. onCreate 메서드에 넣으십시오.

LinearLayout layout = (LinearLayout)findViewById(R.id.YOUD VIEW ID); 
ViewTreeObserver vto = layout.getViewTreeObserver(); 
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override 
    public void onGlobalLayout() { 
     hs.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
     int width = layout.getMeasuredWidth(); 
     int height = layout.getMeasuredHeight(); 

    } 
}); 
+1

** hs ** 란 무엇입니까? – hakiko

+1

@hakiko 나는 그것이 layout.getViewTreeObserver() 여야한다고 생각합니다. removeGlobalOnLayoutListener (this); – blessenm

+0

또는'final'을'vto'에 추가하면'onGlobalLayout()'안에'vto.removeGlobalOnLayoutListener (this)'를 사용할 수 있습니다. – vilpe89

관련 문제