2011-10-08 55 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

相关问题