La vista de lista establece un selector de rizado personalizado
Estoy tratando de usar un control de vista de lista en Lollipop bajo las siguientes condiciones:
- El tipo de tema es el Theme.Material predeterminado (tema oscuro).
- La vista de lista está contenida dentro de la disposición más grande que tiene un fondo blanco.
- La vista de lista debe tener un selector de lista que aparece con el fondo blanco.
NOTA: Tengo que usar un color selector de lista personalizado porque si utilizo un fondo blanco, el selector temático de material oscuro utiliza el color ColorControlHighlight del tema para el ripple, que es 40ffffff y no aparece.
- Vista de lista expandible setOnChildClickListener no funciona
- ¿Cómo resaltar el elemento ListView en el tacto?
- ¿Fragmento de acceso en la actividad?
- ¿Cómo puedo obtener uri del elemento ListView que se rellena con Cursor Adapter
- Añadir fragmento al elemento de vista de lista
Primero probé lo siguiente:
Layout xml
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:background="@android:color/white" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:listSelector="@drawable/list_selector" /> </LinearLayout>
List_selector xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ff0000" > </ripple>
Y fila de vista de lista xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:gravity="center_vertical" android:orientation="horizontal" tools:ignore="UseCompoundDrawables" > <ImageView android:id="@+id/list_image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/list_title" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
Lo que espero ver es cuando selecciono un elemento, el elemento se selecciona con una ondulación de color como # ff0000. Sin embargo, esto es lo que acabo viendo:
Lo que estoy esperando es algo cerca de este comportamiento – pero confinado dentro de la fila de la lista seleccionada! ¿Qué estoy haciendo mal?
Gracias, Zach
- Android - eliminar el elemento de ListView en un clic largo
- El mejor método para agregar continuamente nuevos datos a listview
- ArrayAdapter en Fragmento - Android
- Obtener datos de JSON en la vista de lista
- Android ListView con CursorAdapter tiene la posición de desplazamiento incorrecta después de Requery se llama cuando se agregan nuevos elementos
- Cómo restablecer el ListView con el ArrayAdapter después de buscar datos
- ListView de búsqueda múltiple
- EditText de Focusable en ListView y onItemClick
Está utilizando una ondulación sin límites, por ejemplo, una ondulación sin capa de contenido o máscara, por lo que la ondulación se proyecta sobre el fondo de su ListView padre. Debe establecer una capa de máscara para restringir los límites de ondulación.
Res / drawable / my_list_selector.xml:
<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="?attr/colorControlHighlight"> <item android:id="@android:id/mask"> <color android:color="@color/white" /> </item> </ripple>
- Versión automática de la numeración de tu aplicación de Android con Git y Eclipse
- Compass en Android