2014-10-14 12 views
13

Sto lavorando con un ListView che fa parte di un ListFragment. Voglio aggiungere un'intestazione con un'altezza specifica/personalizzata ma non importa ciò che ho messo all'altezza della vista dell'intestazione, sempre ha la stessa altezza. È possibile modificare l'altezza della vista dell'intestazione di un ListView?Intestazione Visualizza altezza in una ListView

sotto il codice che uso:

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); 
    } 

risposta

29

Quando si passa nel null come secondo parametro per inflate(), si è dicendo che non ci sono genitori associati a th e vista. Questo ha lo sfortunato effetto collaterale in cui qualsiasi attributo layout_ viene ignorato come i parametri layout_ influenzano il modo in cui il genitore definisce la vista figlio piuttosto che influenzare direttamente il bambino (come le altre viste): this pro-tip godes in ulteriori dettagli sugli attributi layout_.

È possibile utilizzare inflate(R.layout.header, getListView(), false) per passare in ListView che alla fine sarà il genitore della vista dell'intestazione (notare il falso dice di non aggiungere direttamente la vista - ListView lo farà automaticamente per voi).

+1

Ciao @ianhanniballake, la tua soluzione funziona come un fascino: D, grazie mille! Quando ho usato _inflate (R.layout.header, getListView(), false) _ ha iniziato a funzionare. – Androider

+2

questa è una * ottima * ottima risposta, questo è ciò che ottieni leggendo i documenti, gente! Vergogna su di noi – Odaym

Problemi correlati