13

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?

Archie.bpgc
  • 23,812
  • 38
  • 150
  • 226
brian
  • 6,802
  • 29
  • 83
  • 124
  • unless you're going to have a background task optimizing bitmaps (or something similar) before showing them on the screen, I really can't thing on any moment any would need this value. If you could tell us a bit more about your application, we might be able to point you to a better design alternative. – Budius Aug 15 '12 at 08:26
  • http://stackoverflow.com/a/41705445/5664529 check this out, it may help you. – Siddhesh Shirodkar Jan 17 '17 at 20:00

3 Answers3

42

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.

Dmitry Zaytsev
  • 23,650
  • 14
  • 92
  • 146
1
LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
                                                       ^^^^^^^^^^
Samir Mangroliya
  • 39,918
  • 16
  • 117
  • 134
1

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