brian
brian

Reputation: 6912

How to get height of LinearLayout

I have a LinearLayout set height as match_parent as below:

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

I want to get the height of this LinearLayout.
I used the code below:

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

But it return null.
How can I do?

Upvotes: 13

Views: 25625

Answers (3)

user2268821
user2268821

Reputation:

You need to wait View to be initialized first use View Tree Observer it waits until the view is created check out this

get layout height and width at run time android

Upvotes: 1

Dmitry Zaytsev
Dmitry Zaytsev

Reputation: 23962

First of all: your LinearLayout id is left_layout, not list_layout.

Also, ll_list.getHeight() will return 0 (as well as ll_list.getWidth()) if it's not drawed yet.

Solution would be to get the height after your view is layouted:

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

And make sure that your ll_list is final.

Upvotes: 44

Samir Mangroliya
Samir Mangroliya

Reputation: 40416

LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
                                                       ^^^^^^^^^^

Upvotes: 1

Related Questions