以编程方式在Android中获取LinearLayout或RelativeLayout的高度

时间:2014-11-11 17:56:36

标签: android android-layout layout

我需要在Android中以编程方式获取LinearLayout或RelativeLayout的长度,就像我有如下的LinearLayout一样

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" > 

我需要通过获取屏幕高度来增加位于屏幕中间的布局的高度,并通过根据屏幕高度进行计算来增加或减少其高度。因此,有一种计算布局高度的方法,其高度设置为wrap_content。我试图从布局参数中获取高度,但它给出了-1或-2的值,而不是像素或密度像素的高度。

2 个答案:

答案 0 :(得分:2)

当然match_parent和wrap_content等于-1和-2。

在这种情况下,请尝试使用viewTreeObserver。

这是一个很好的链接:http://www.sherif.mobi/2013/01/how-to-get-widthheight-of-view.html

答案 1 :(得分:1)

尝试以下方法:

myLayoutRef.post(new Runnable() {
    int height = myLayoutRef.getHeight;
});

在您的布局绘制并在屏幕上布局后,此runnable运行,因此获取高度将返回实际高度而不是0