In Android 5.0, il mio ListView produce un effetto a catena quando si fa clic su un elemento dell'elenco. C'è un modo per disabilitare questo effetto? Guardando i documenti, non vedo alcun modo (https://developer.android.com/reference/android/widget/ListView.html)Disattiva ripple su ListView
risposta
È possibile rimuovere o sostituire il selettore di lista utilizzando la proprietà android:listSelector
. Il selettore di elenco predefinito in Materiale è ?android:attr/selectableItemBackground
che è un'ondulazione limitata.
<ListView
...
android:listSelector="@drawable/my_list_selector" />
Per disabilitare completamente il selettore, è possibile utilizzare un @null
o @android:color/transparent
(funziona meglio per alcune versioni di Android) valore come segue:
<ListView
...
android:listSelector="@android:color/transparent" />
Sì, è possibile creare voci di elenco personalizzate con il loro layout, in cui è necessario modificare il android:background
con un drawable senza ripple.
Questo copre solo l'ondulazione ... che funziona la maggior parte del tempo, a meno che non sia necessario uno sfondo semitrasparente per gli elementi della lista –
Prova:
<ListView
...
android:listSelector="@android:color/transparent" />
Questo disabiliterà qualsiasi effetto visivo di toccare. Non molto buono per l'utente, ma potrebbe essere utile in circostanze particolari.
Questo mi dà un brutto sfondo giallo in stile pan di zenzero. – azurh
questo ha rimosso l'ondulazione ma invece mi ha dato uno sfondo giallo. L'ho usato invece: 'android: listSelector =" @ android: color/transparent "' –