我需要在动态添加项目后(在充气后)测量线性布局。我在getHeight
和getMeasuredHeight
中尝试了onStart
和onCreate
,但他们正在返回0.我能想到的一个解决方案是衡量夸大的项目&#39 ;高度,并添加它们。但我希望这是一个更合法的解决方案。
由于
答案 0 :(得分:2)
在Honeycomb及更高版本中,您可以向视图添加OnLayoutChangeListener
。
在Honeycomb之前,您必须使用OnGlobalLayoutListener
。这有点棘手,因为它被调用整个布局,而不仅仅是你指定的视图,所以通常你会注册它,然后在第一次调用它时取消注册它。
linearLayout.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
linearLayout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
// do the rest of your stuff here
}
});
在存在度量/布局传递之前,报告的视图大小将为零。
答案 1 :(得分:0)
你必须等到画出来。你可以在root的布局中发布一个runnable,当它被调用时,你应该能够检索孩子的身高/体重