Android: deshabilitar el resaltado en la lista Clic de la vista

Quiero desactivar el resaltado naranja que se produce 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 cero diferencia cuando un usuario toca la pantalla en este objeto listView.

Agregue esto a su xml:

 android:listSelector="@android:color/transparent" 

Y para el problema esto puede funcionar (no estoy seguro y no sé si hay mejores soluciones):

Puede aplicar una ColorStateList a su TextView.

La respuesta de RoflcoptrException debería ser el truco, pero por alguna razón no funcionó para mí, entonces estoy publicando la solución que funcionó para mí, espero que ayude a alguien

  

El efecto de resaltado naranja es un estilo en el ListView. Este artículo ofrece una buena visió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.

ver esto para una solución corta y rápida https://stackoverflow.com/a/12242564/185022

De ListView: Desactivar resaltado de enfoque ,

cuando configura su ListAdapter use el siguiente código

 ListAdapter adapter = new SimpleCursorAdapter(MyList, Layout, c, new String[] { "Name", "Score" }, to) { public boolean areAllItemsEnabled() { return false; } public boolean isEnabled(int position) { return false; } }; 

Esto anulará la clase BaseAdapter . También cancela el borde blanco entre las celdas.

agrega esto también a tu XMl junto con el selector de listas … espero que funcione

  

Si está utilizando ArrayAdapter o BaseAdapter para completar los elementos de la lista. Override el método isEnabled y devuelva false .

  @Override public boolean isEnabled (int position) { return false; } 

Después de algunos ‘googleing’ y pruebas en dispositivos virtuales y reales, noto que mi código siguiente funciona:

 ArrayAdapter myList = new ArrayAdapter(this, R.layout.list_item, strText) { public boolean isEnabled(int position) { return false; } }; 

aviso que he omitido la porción areAllItemsEnabled() .

Nada me ayuda más que esto:

transparent_drawable.xml :

     

layout.xml :

 android:listSelector="@drawable/transparent_drawable" 

en codigo

 listView.setSelector(getResources().getDrawable(R.drawable.transparent)); 

y agrega una pequeña imagen transparente a la carpeta dibujable.

Me gusta: transparent.xml

     

Para mi 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 una cantidad de objetos en cada fila.

Solo necesita agregar: android:cacheColorHint="@android:color/transparent"

Como alternativa:

 listView.setSelector(android.R.color.transparent); 

o

 listView.setSelector(new StateListDrawable()); 

Hay una forma rápida y sencilla de hacerlo: en método:

 private void OnItemSelected(object sender, SelectedItemChangedEventArgs e) { //TODO ((ListView)sender).SelectedItem = null; } 

Espero que ayude;)

Si desea deshabilitar el resaltado para un solo elemento de vista de lista, pero mantener la celda habilitada, configure el color de fondo para que esa celda deshabilite el resaltado.

Por ejemplo, en el diseño de su celda, configure android:background="@color/white"

simplemente puede obtener la pos que obtiene de onItemClick y hacer:

 listView.setItemChecked(pos, false); 

esa es la mejor forma que conozco de