Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Header View height in a ListView

I'm working with a ListView that is part of an ListFragment. I want to add a header with a specific/custom height but it does not matter what I put in the height of the header view, always it has the same height. Is possible to modify the header view height of a ListView?

Below the code I use:

header.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="100dp" />

ListFragment

 @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        TextView fakeHeader = (TextView)getActivity().getLayoutInflater().inflate(R.layout.header, null);
        getListView().addHeaderView(fakeHeader);
    }
like image 908
Androider Avatar asked Oct 14 '14 23:10

Androider


1 Answers

When you pass in null as the second parameter to inflate(), you are saying there is no parent associated with the view. This has the unfortunate side effect where any layout_ attribute you use is ignored as layout_ parameters affect how the parent lays out the child view rather than directly affect the child (like other views): this pro-tip godes into more details on layout_ attributes.

You can use inflate(R.layout.header, getListView(), false) to pass in the ListView which will eventually the parent of your header view (note the false says to not add the view directly - ListView will do this automatically for you).

like image 50
ianhanniballake Avatar answered Nov 13 '22 14:11

ianhanniballake