如何在addView之后获取LinearLayout的当前高度?

时间:2014-05-12 15:30:02

标签: android height android-linearlayout

我需要在动态添加项目后(在充气后)测量线性布局。我在getHeightgetMeasuredHeight中尝试了onStartonCreate,但他们正在返回0.我能想到的一个解决方案是衡量夸大的项目&#39 ;高度,并添加它们。但我希望这是一个更合法的解决方案。

由于

2 个答案:

答案 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,当它被调用时,你应该能够检索孩子的身高/体重