2011-10-08 88 views

回答

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

相關問題