Quiero deshabilitar el resaltado naranja que ocurre al tocar una fila listView. Hasta ahora en mi xml he intentado lo siguiente:
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false"
Más información: Quiero que haya una diferencia cero cuando un usuario toca la pantalla en este objeto listView.
android
android-listview
highlighting
John Moffitt
fuente
fuente
Fragment
para la lista. El diseño XML contiene unoLinearLayout
y variosTextView
elementos. ¿Dónde debo deshabilitar el resaltado de fila, por favor?listView.setSelector(android.R.color.transparent);
La respuesta de RoflcoptrException debería hacer el truco, pero por alguna razón no funcionó para mí, así que estoy publicando la solución que funcionó para mí, espero que ayude a alguien
fuente
El efecto de resaltado naranja es un estilo en ListView. Este artículo ofrece una buena descripción general de cómo anular el estilo listView.
Básicamente, tiene un selector que especifica diferentes elementos de estilo en función del estado actual.
vea esto para obtener una solución breve y rápida https://stackoverflow.com/a/12242564/185022
fuente
listSelector
debería ser.Desde ListView: Deshabilite Focus Highlight ,
cuando configuras tu
ListAdapter
uso, el siguiente códigoEsto anulará la
BaseAdapter
clase. También cancela el borde blanco entre las células.fuente
isEnabled
para deshabilitar un elemento no es la forma de deshabilitarlo. La documentación dice queisEnabled
se supone que determina si un elemento es un separador.agregue esto también a su XMl junto con listselector ... espero que funcione
fuente
Si está utilizando
ArrayAdapter
oBaseAdapter
para completar los elementos de la lista.Override
ElisEnabled
método y el retornofalse
.fuente
Después de algunos 'google' y pruebas en dispositivos virtuales y reales, noto que mi código a continuación funciona:
Observe que he omitido la
areAllItemsEnabled()
porción.fuente
Nada me ayuda más que esto:
transparent_drawable.xml
:layout.xml
:fuente
en codigo
y agregue una pequeña imagen transparente a la carpeta dibujable.
Me gusta: transparent.xml
fuente
Para mí
android:focusableInTouchMode="true"
es el camino a seguir.android:listSelector="@android:color/transparent"
No sirve de nada. Tenga en cuenta que estoy usando una vista de lista personalizada con varios objetos en cada fila.fuente
Solo necesitas agregar:
android:cacheColorHint="@android:color/transparent"
fuente
Como alternativa:
o
fuente
Hay una manera rápida y fácil de hacer esto: En método:
Espero que ayude;)
fuente
Si desea deshabilitar el resaltado para un solo elemento de vista de lista, pero mantener la celda habilitada, configure el color de fondo para esa celda para deshabilitar el resaltado.
Por ejemplo, en el diseño de su celda, establezca
android:background="@color/white"
fuente
puedes obtener lo
pos
que obtienes deonItemClick
y hacer:esa es la mejor manera que conozco
fuente