2009-12-09 11 views
33

Se ho uno ListView con due diversi tipi di elementi, abilitati e disabilitati (ovvero selezionabili e non selezionabili), Android disegna correttamente un piccolo divisore tra gli elementi abilitati, ma non tra oggetti disabilitati. Invece disegna un divisore trasparente, che causa problemi di progettazione davvero pessimi. Questo è già stato discusso here (Google Gruppi), ma senza alcuna soluzione.Android: oggetti ListView non abilitati disegnano divisori invisibili

Quello che sto cercando è un modo per forzare Android per disegnare la stessa divisorio che viene utilizzato tra enabled articoli anche ad essere utilizzato tra disabled articoli invece di solo lasciando uno spazio trasparente.

+0

Ho eseguito in questo problema come bene e mi rattrista che che si suppone essere il comportamento previsto. L'unica soluzione a cui riesco a pensare è disegnare i divisori da soli creando il proprio adattatore che li aggiunge automaticamente laddove appropriato. –

+0

Ho cercato un po 'di tempo e non ho ancora trovato una soluzione adeguata. Aggiornerà questo post non appena ne trovo uno. Per ora uso anche l'adattatore personalizzato come soluzione alternativa. – znq

+0

Ho appena riscontrato lo stesso problema nella mia app. Un headerView non selezionabile non visualizza il divisore (intestazione aggiunto con questo metodo! AddHeaderView (Visualizza v, i dati oggetto, booleano isSelectable). Io porrò direttamente nel mio header ... –

risposta

0

sì non è affatto bello! Mi sono imbattuto nello stesso problema. Il modo per risolverlo è aggiungere una riga di tipo View nel tuo file xml e impostare il divisore a 0 altezza in questo modo: android: dividerHeight = "0dp" Nota: questo è nella visualizzazione elenco stessa.

1

se si dispone di intestazioni e/o piè di pagina: http://java.dzone.com/articles/android-listview-%E2%80%93-fixing è la risposta corretta. Davvero ben spiegato.

+0

Il suo approccio sorta di opere, ma è un po 'problematico. Se 'areAllItemsEnabled()' restituisce true, è possibile portare qualsiasi oggetto a fuoco e fare clic su di esso, compresi gli oggetti per i quali 'isEnabled' sarebbe return false. Provare a utilizzare i tasti freccia + entrare in un emulatore. –

+0

se si disattiva/cliccabile falso il contenuto non dovrebbe fare clic sull'elenco. La funzione isEnabled di listview non può essere utilizzata in modo appropriato come ci sono molti bug/incompatibilità come questa – Denny1989

Problemi correlati