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

jef*_*eon 5 android view button width

我试图获得android:layout_width设置为的按钮的宽度wrap_content.当我尝试在onCreate()使用时这样做时getMeasuredWidth(),我得到零值,因为我认为视图尚未准备好.

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

ble*_*enm 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();  

    }  
}); 
Run Code Online (Sandbox Code Playgroud)