13

我将 LinearLayout 设置为 match_parent 的高度,如下所示:

<LinearLayout
    android:id="@+id/list_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

我想得到这个 LinearLayout 的高度。
我使用了下面的代码:

LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
int h = ll_list.getHeight();

但它返回null。
我能怎么做?

4

3 回答 3

41

首先:你的LinearLayoutid 是left_layout,不是list_layout

此外,如果尚未绘制,ll_list.getHeight()将返回 0 (以及)。ll_list.getWidth()

解决方案是在布局视图后获取高度:

ll_list.post(new Runnable(){
    public void run(){
         int height = ll_list.getHeight();
    }
});

并确保您的ll_listis final

于 2012-08-15T05:46:13.237 回答
1
LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
                                                       ^^^^^^^^^^
于 2012-08-15T05:40:43.017 回答
1

您需要等待 View 被初始化首先使用 View Tree Observer 它等到创建视图查看这个

在运行时获取布局高度和宽度android

于 2017-07-05T11:45:04.480 回答