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