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.
- Android ListView mListView.getChildAt (i) es nulo, ¿cómo resolverlo?
- Android ListView Eliminar selección
- ¿Cómo manejar el efecto Ripple en 9-patch y CardView, y tener control sobre los estados del selector?
- Cómo implementar "Deslizar hacia abajo para actualizar" como en la nueva aplicación de GMail
- ¿Cómo enviar datos de un Fragmento a otro Fragmento?
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
- Utilizar OnItemClickListener en ListView dentro de ViewPager
- Android: ¿Qué hacer si el rendimiento de ListView sigue siendo insuficiente?
- Cómo crear Google + tarjetas de interfaz de usuario en una vista de lista?
- ¿Hay algo como NSDictionary en android?
- Filtrado de la vista de lista y obtención del elemento onclick correcto
- Altura de la vista del encabezado en un ListView
- Correcto manera de comprobar todas las casillas de verificación en ListView?
- Máscara ImageView con fondo de esquina redonda
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