Desidero disattivare l'evidenziazione che appare quando l'utente seleziona una riga (listSelector) dal codice. Non voglio disabilitare le impostazioni onClick e abilitate (voglio ancora ascoltare i clic, voglio solo rimuovere l'evidenziazione).Android - Disabilita selezione ListView Selezione ma Keep OnClick abilitato
risposta
Basta creare un drawable che ha un colore trasparente in esso, qualcosa di simile:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:drawable="@android:color/transparent"/>
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_light" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@color/transparent" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@color/transparent" />
<item android:state_focused="true" android:drawable="@drawable/list_focused_holo" />
</selector>
E poi fissato dal codice o XML:
listView.setSelector(R.drawable.my_transparent_selector);
Javadoc per questo metodo dice:
Impostare un Drawable che deve essere utilizzato per evidenziare la voce attualmente selezionata.
e l'attributo XML è:
Android: listSelector
Si può giocare con tutti gli stati, ricordate che avete anche lo stato di messa a fuoco.
Dal codice, Nicolas, non l'XML. Posso gestirlo già da XML usando l'attributo listSelector. –
Non so perché sia necessario in questo modo, quindi mantieni due file e gioca con loro. –
No, dopo la modifica, funziona correttamente. Sto usando una sorta di checkbox invece di evidenziare le righe. La tua risposta funziona come un fascino. Grazie. –
L'effetto di evidenziazione è uno stile in listSelector. Puoi sovrascrivere lo stile listSelector.
Questo è un esempio con un controllo ListView: Android: disabling highlight on listView click
Specificare android:listSelector="@android:color/transparent"
nel vostro ListView
XML.
Molto facile e fa il trucco! –
provare listview.setSelector(new ColorDrawable(Color.TRANSPARENT));
Questo è stato il più facile per me, che va per un approccio programmatico grazie. – Zhang
ho fatto in questo modo:
Con l'aggiunta di due proprietà di ListView.
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"
tuo ListView dovrebbe appare come di seguito:
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent">
</ListView>
Fatto
- 1. Android ListView Rimuovi selezione
- 2. Disabilita selezione diapositiva per un listview
- 3. Disabilita selezione drop down disabilita l'articolo
- 4. UITableViewController - disabilita la selezione
- 5. Disabilita selezione multipla?
- 6. Disabilita selezione richtextbox wpf
- 7. UIPickerView disabilita selezione riga
- 8. JavaFX ListView Selezione multipla
- 9. Android ListView personalizzato ripete selezione sfondo
- 10. Xamarin - compensazione selezione ListView
- 11. Cancella selezione SingleChoiceVisualizzazione selezione
- 12. jQuery: domanda di selezione (la selezione per attributo onclick)
- 13. problema selezione selezione Android scelta singola?
- 14. La lista di Android non evidenzia più la selezione onclick
- 15. Disabilita selezione riga in TableView
- 16. Android disabilita listview elementi
- 17. Disattiva completamente l'evidenziazione di Android GridView (disabilita la selezione)
- 18. Android - Adattatore ListView personalizzato - Rimuove selezione multipla - Indexoutofbounds - perché?
- 19. QWebview/webkit disabilita la selezione del testo
- 20. Come disabilitare l'evidenziazione della selezione in listview xamarin.forms su Android
- 21. Abilita/Disabilita ingresso basato sulla selezione (jQuery)
- 22. Wpf listview evento di selezione articolo
- 23. Selezione data in Android
- 24. Strange UICollectionComposizio selezione selezione
- 25. Adattatore per array Android Selezione dell'ID errato
- 26. Qual è la modalità di selezione della selezione modale?
- 27. Disabilita selezione testo e copia incolla nell'app ibrida utilizzando JS
- 28. Ascolto onClick su un'immagine ListView - Android
- 29. Selezione casella di selezione con jQuery
- 30. Disabilita menu di selezione contestuale a strisce pedonali (Cordova)
quale adattatore stai usando? –
Un semplice ArrayAdapter. Importa? –
"Voglio disabilitare l'evidenziazione che appare quando l'utente seleziona una riga" - perché? Che dire degli utenti che usano i tasti freccia, D-pad e simili per navigare nella tua app? Si prega di consentire all'app di essere utilizzata da * tutti * gli utenti, non solo quelli che utilizzano il touchscreen. – CommonsWare