2010-11-19 2 views
5

Ho navigato in internet cercando una risposta per diverse ore, ma non riesco a trovare nessuno che sia stato in grado di risolvere questo problema.Android ListView con elementi selezionabili nelle sue righe provoca problemi continuando a scorrere

Ho un listview che utilizza un adattatore personalizzato. Una riga simile a questa

alt text

La lista è riempito da un array. Tutto funziona alla grande.

Ora, voglio che ImageView e ToggleButton reagiscano ai clic, quindi implemento OnClickListener nel mio adattatore, inserisco la posizione degli elementi nel tag di ogni vista e quindi imposto il loro onclicklistener su questo.

Funziona alla grande, tranne che ora non riesco a utilizzare onListItemClick per avviare un'attività per l'articolo! OK, dico, mi limito a fare in modo che il relativelayout mantenga il testo nel mezzo che usa lo stesso onclicklistener. Funziona alla grande. Tutto è cliccabile e la vita è buona.

TRANNE! Ora, quando faccio scorrere l'elenco, non riesco a "continuare" lo scorrimento semplicemente lanciando di nuovo. Questo fa sì che lo scorrimento si fermi, e io devo scappare ancora una volta per farlo andare di nuovo. Sembra che l'onclick-thingy sia interpretato come un tocco o qualcosa del genere (non attiva la logica all'interno di onClick).

So che questo è possibile semplicemente andando all'elenco telefonico sul mio HTC Hero, che ha esattamente il tipo di layout e comportamento che voglio dalla mia app. Sembra che anche questa app abbia il funzionamento di onItemClickListener.

Quindi, come posso assicurarmi che l'elenco continui a scorrere e sia ancora possibile fare clic sul pulsante di commutazione, sul listino e sulla visualizzazione di immagini? Sono stato bloccato in questo tutto il giorno, e mi sta dando un mal di testa :(

risposta

16

Un'altra ricerca veloce prima di andare a casa, e mi sono imbattuto in questo:

How to fire onListItemClick in Listactivity with buttons in list?

CodeFusionMobile menziona l'impostazione del android:descendantFocusability proprietà del layout della lista a "blocksDescendants", e così ho provato a farlo. Tutto funziona come previsto ora. funziona scorrimento, onListitemClicked opere, cliccando i ToggleButton opere, cliccando i ImageView opere.

Jus Per chiarire ... Nel genitore RelativeLayout, proprio in cima allo row.xml, ho aggiunto

android:descendantFocusability="blocksDescendants"