ListView: selectores dibujables dibujados en diferentes tamaños
Estoy usando un selector ListView personalizado. Todo funciona bien, excepto que los drawables para state_focused y state_pressed se dibujan más grande que el estado normal.
En lugar de la implementación predeterminada, que utiliza mapas de bits de 9 parches, estoy usando ShapeDrawables. Todos ellos usan los mismos valores de relleno (ver más abajo) Parece que están sobrescritos por otros valores. Probablemente un tema? No lo encontré.
- Android ListView y OnClickListener: Cómo obtener el elemento seleccionado
- Mostrar registros desde la parte superior de un ListView
- Cómo ocultar el popup de filtro en ListView en Android?
- ¿Cómo mantener la posición de ListView al usar las nuevas API de Loader?
- ListView vacío a pesar de los elementos agregados al adaptador en algún momento al reanudar la aplicación
Vista de la lista
<ListView style="@style/dark_bg_style" android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="10dp" android:layout_centerInParent="true" android:drawSelectorOnTop="false" android:cacheColorHint="#00000000" android:layoutAnimation="@anim/list_layout_in" android:scrollbars="none" android:divider="#00000000" android:dividerHeight="5dp" android:listSelector="@drawable/list_sel" />
List_sel.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/transparent" android:state_window_focused="false"/> <item android:drawable="@drawable/button_bg_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/button_bg_focused" android:state_focused="true" android:state_selected="true"/> <item android:drawable="@drawable/button_bg_focused" android:state_focused="true"/> </selector>
Extracto del diseño del elemento de lista
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/menu_sel" > ...
Menu_sel.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/transparent" android:state_focused="true" android:state_selected="true"/> <item android:drawable="@android:color/transparent" android:state_selected="true"/> <item android:drawable="@android:color/transparent" android:state_pressed="true"/> <item android:drawable="@drawable/button_bg_normal"/> </selector>
Button_bg_normal.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#44C8C8C8" /> <corners android:radius="5sp" /> <padding android:left="10dip" android:top="5dip" android:right="10dip" android:bottom="5dip" /> </shape>
Button_bg_pressed.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#77C8C8C8" /> <corners android:radius="5sp" /> <padding android:left="10dip" android:top="5dip" android:right="10dip" android:bottom="5dip" /> </shape>
Button_bg_focused.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#44C8C8C8" /> <corners android:radius="5sp" /> <stroke android:color="#55FFFFFF" android:width="1dip" /> <padding android:left="10dip" android:top="5dip" android:right="10dip" android:bottom="5dip" /> </shape>
- Android Listview en PopupWindow onitemclick no funciona en algún dispositivo
- Android: el evento onItemClick () de ListView no se llama
- Establecimiento de diferentes colores de divisor para cada elemento en la vista de lista
- Custom ListAdapter consistente en EditText pierde el foco llamado dos veces
- Fragmento onCreate llamado varias veces cuando vuelve a cargar el Fragmento
- Filtro de búsquedaVer ListView
- Cambiar el ancho de AutoCompleteTextView en Android
- Haga clic en un elemento de la lista RecyclerView
Cuando se trabaja con ListView
s, es mejor establecer los estados de fondo como el android:listSelector
. En su código, hay una contienda entre los estados en android:listSelector
y el android:background
especificado para la fila individual.
- Scala Android AsyncTask no llamará a la devolución de llamada publishProgress, "onProgressUpdate"
- Android: leer "atributo de dispositivo" falla con error "longitud no válida"