Android - 获取设置为 wrap_content 的按钮的宽度
Posted
技术标签:
【中文标题】Android - 获取设置为 wrap_content 的按钮的宽度【英文标题】:Android - getting the width of a button which is set to wrap_content 【发布时间】:2011-12-08 05:30:22 【问题描述】:我正在尝试获取将android:layout_width
设置为wrap_content
的按钮的宽度。当我尝试在onCreate()
中使用getMeasuredWidth()
执行此操作时,我得到的值为零,因为我认为视图尚未准备好。
那么我应该什么时候得到宽度呢?当视图完成初始化时,我可以挂接任何侦听器吗?
【问题讨论】:
【参考方案1】:您可以在布局中添加树观察者。这应该返回正确的宽度和高度。在子视图的布局完成之前调用 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();
);
【讨论】:
仅供参考:removeGlobalOnLayoutListener
在较新的 API 中已弃用,现在为 removeOnGlobalLayoutListener
。欲了解更多信息:***.com/a/16190337/487940以上是关于Android - 获取设置为 wrap_content 的按钮的宽度的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何将高度设置为 wrap_content?
android解决Viewpager设置高度为wrap_content无效的方法
android中的wrap_content,match_parent, fill_parent