[英]android - get estimated height of a programmatically created view
在其中添加所有视图后(即何时真正可以测量),如何以编程方式创建RelativeLayout的 高度 ? 我以编程方式创建了应该是该RL子级按钮的Button,设置其边距和对齐方式,并将其添加到RL中,以便可以测量RL的高度。 普通的rl.getHeight()返回0。我使用了以下代码:
rl.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int rlHeight=rl.getMeasuredHeight();
在Nexus 5(API 23)上一切正常,但是在另一台使用API 17的设备上(我记得是4.2或其他),它会抛出NPE。 该怎么办?
PS OnGlobalLayoutListener和OnPreDrawListener不好,因为在调用setParams(...)并将RL添加到外部布局之前,需要测量高度。
您可以使用GlobalLayoutListener或OnPreDrawListener在运行时以编程方式查找视图高度。 请参考此答案以获取示例: https : //stackoverflow.com/a/6569243/4898635
但是,一定要在身高升高后移开监听器,否则它将被连续调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.