2011-09-19 15 views
17

Come posso nascondere o eliminare un determinato separatore di listview? Certo che posso nascondere tutti i divisoriAndroid. Nascondi un determinato separatore listview

getListView().setDivider(null); 
getListView().setDividerHeight(0); 

ma ho bisogno di nascondere una o due divisori nel mio ListView. per esempio per posizione. Sto usando un adattatore personalizzato per i dati dell'elenco. Grazie.

risposta

7

È possibile creare una vista personalizzata per ciascun ListItem in cui è possibile attivare o disattivare il separatore oppure creare una vista separatore da aggiungere alla vista elenco nelle posizioni appropriate.

+0

Ho un layout personalizzato per la voce di elenco. Ma non so come aggiungere o rimuovere il divisore su ogni oggetto. Suppongo che il divisore sia una cosa comune per tutte le listview. –

+0

quindi aggiungi semplicemente un separatore che guarda la vista in cima o in fondo al layout e lo imposta visibile o invisibile. – slayton

+0

slayton, mi spiace ma non ti capisco. Tu parli che posso aggiungere un divisore nella mia lista, ma questo divisore di cosa si tratta? TextView, ImageView ecc.? In listview prpoperties è presente la proprietà del divisore, comune a tutti gli elenchi. Come posso impostare questa proprietà per ogni articolo? Forse vuoi dire disabilitare i divisori "nativi" come menzionato nel mio codice qui sopra ed emulare il divisore come vista aggiuntiva nella mia vista delle voci della lista? Destra? –

16

È possibile nascondere il divisore orizzontale per gli elementi disattivati ​​della vista elenco (comunemente usati come intestazioni di sezione). Per effettuare questa operazione, restituire false nella richiamata areAllItemsEnabledBaseAdapter. Ancora, questo funziona solo per quelle viste che sono disabilitate (si restituisce false nel callback isEnabled per questo articolo). La documentazione per questa richiamata è un po 'vaga:

Indica se tutti gli elementi in questo adattatore sono abilitati. Se il valore restituito da questo metodo cambia nel tempo, non vi è alcuna garanzia avrà effetto. Se vero, significa tutti gli articoli sono selezionabili e cliccabile (non c'è separatore.)

Reference.

Si noti che menziona il separatore. Non sono sicuro se questo è un comportamento previsto o qualche tipo di effetto collaterale. Ma funziona. Puoi vederlo in ApiDemos List demo 5 (Separatori).

+0

Grazie questa risposta salva il mio giorno.Overriding BaseAdapter areAllItemsEnabled e return false ha fatto l'attacco – Manju