studio color cardview android android-layout android-listview android-selector

android - color - Deselecciona el elemento seleccionado en ListView



selector android (8)

Yo uso un ListView en mi diseño como este:

<ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_gravity="center" android:layout_height="match_parent" android:layout_weight="0.7" android:layout_marginTop="5dp" android:orientation="vertical" android:layout_centerInParent="true" android:divider="@color/dark_grey" android:drawSelectorOnTop="false" android:focusable="true" android:layout_marginBottom="55dp" android:cacheColorHint="#00000000" android:listSelector="@color/light_grey" android:dividerHeight="1px" />

El selector funciona muy bien, pero ¿cómo puedo desactivar el selector?

Lo intenté:

listView.clearChoices(); listView.setSelected(); listView.setSelector(); ...

Y unas cuantas cosas mas pero nada funciona. ¿Alguna idea de cómo puedo volver mi artículo seleccionado a la normalidad? No puede ser tan complicado, ¿verdad?

Edit: necesito una solución programática!

¡Gracias!


Como @Muerte mencionó anteriormente, hacer lo siguiente me funcionó:

myListView.clearChoices(); myAdapter.notifyDataSetChanged();

Eso parece que sería mejor que volver a dibujar todo el diseño.


En su XML donde declara el uso de ListView:

<ListView android:id="@+id/my_list" android:listSelector="#00000000" />


Llame a requestLayout() en el ListView después de clearChoices() . Funcionará.


Ninguna de las soluciones realmente funcionó para mí. Mi vista de lista es para enumerar los elementos buscados y tiene una disposición para rehacer la búsqueda. Al obtener el resultado, agregué el siguiente fragmento de código y funcionó :)

myAdapter.setSelectedIndex (-1);


Para mí funcionó con:

listView.setAdapter(myAdapter);


Puede configurar un selector después de hacer clic:

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/transparent_white" android:state_focused="true" android:state_pressed="true"/> <item android:drawable="@drawable/transparent_white" android:state_focused="false" android:state_pressed="true"/> <item android:drawable="@drawable/transparent_white" android:state_focused="true"/> <item android:drawable="@drawable/transparent_white" android:state_focused="false"/>

y el @ drawable / transparent_white es # 00ffffff


Su recurso de selección parece estar equivocado aquí. Debería usar un dibujable con fondo transparente, y creo que esto es lo que realmente colorea sus filas, pero no el choiceMode de choiceMode de ListView . Por favor revise this otra respuesta para más detalles.


prueba esto

Crea tu propio archivo XML de selector como este

YourSelector.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:state_focused="true" android:drawable="@drawable/item_disabled" /> <item android:state_pressed="true" android:drawable="@drawable/item_pressed" /> <item android:state_focused="true" android:drawable="@drawable/item_focused" /> </selector>

mira este enlace

here