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é.

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> 

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.

  • Listview mostrar los datos de la base de datos en android
  • ¿Cómo evito que listview se desplace a la parte superior después de usar setAdapter?
  • Cómo obtener la miniatura de vídeo de video de youtube en android lista en android
  • Android ListView y OnClickListener: Cómo obtener el elemento seleccionado
  • Android - ListView diapositiva izquierda / derecha como Samsung contacto ListView
  • Android Action Bar Search: ¿Cómo filtrar una lista por la propiedad de un elemento de la lista?
  • Sustitución de la fila ListView por otra presentación onClick
  • Android convertView, para usarlo o no?
  • OnItemClickListener no se puede resolver con un tipo (dentro de Fragmento)
  • cómo establecer el checked / unchecked de CheckedTextView
  • No se puede arrastrar DrawerLayout desde ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.