Android - 获取设置为wrap_content的按钮的宽度

时间:2011-10-15 05:39:47

标签: android button view width

我正在尝试获取android:layout_width设置为wrap_content的按钮的宽度。当我尝试使用onCreate()getMeasuredWidth()中执行此操作时,我得到的值为零,因为我认为该视图尚未就绪。

我应该何时获得宽度?在查看初始化时,是否有任何可以挂钩的监听器?

1 个答案:

答案 0 :(得分:13)

您可以将树观察者添加到布局中。这应该返回正确的宽度和高度。在完成子视图的布局之前调用onCreate。所以宽度和高度尚未计算。获得高度和宽度。把它放在onCreate方法

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

    }  
});