【发布时间】:2017-06-13 02:46:07
【问题描述】:
在我的活动onCreate() 方法中,我创建了一个View 并将其宽度和高度硬编码为等于50。然后我调用measure 方法。之后,我希望 getMeasuredWidth() 返回 50。但它返回 0。
View v = new View(this);
v.setLayoutParams(new ViewGroup.LayoutParams(50, 50));
final int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
v.measure(spec, spec);
final int w = v.getMeasuredWidth();
Log.e("aaa", String.valueOf(w)); // output is 0
我做错了什么?如何强制计算测量视图的大小?我不想要,直到它被绘制,等等。
【问题讨论】:
-
您可能需要再次阅读
makeMeasureSpec的文档