我正在尝试获取android:layout_width
设置为wrap_content
的按钮的宽度。当我尝试使用onCreate()
在getMeasuredWidth()
中执行此操作时,我得到的值为零,因为我认为该视图尚未就绪。
我应该何时获得宽度?在查看初始化时,是否有任何可以挂钩的监听器?
答案 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();
}
});