2010-06-18 25 views
6

Estoy intentando crear un selector de fondo personalizado para mi ExpandableListView. Funciona bien para todos los estados que no sean enfocados. No puedo identificar qué fila está actualmente enfocada. Aquí está el código:android Custom Listview Background Focus Estado no funciona

im_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_focused="true" 
     android:drawable="@drawable/list_selector_background_focus" /> 
    <item android:state_pressed="true" 
     android:drawable="@drawable/list_selector_background_pressed" /> 

    <item 
     android:drawable="@drawable/list_bg" /> 

</selector> 

mi vista de lista en el archivo de diseño

<ExpandableListView android:id="@+id/android:list" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:scrollbars="horizontal" 
       android:layout_below="@id/top_bar" 
       android:layout_marginBottom="45px" 
       android:divider="#00000000" 
       android:cacheColorHint="#00000000" 
       android:listSelector="@layout/im_selector" 
       android:focusable="true"    
      /> 
+1

por cierto, modifique su vista de lista de tal manera que usted tiene 'androide: layout_height = "0DP"' –

Respuesta

8

Cuando se utiliza el modo de contacto con la vista de lista, 'seleccionado' cambios de atributos en lugar que "centrado". Por eso, para listviews se debe añadir la línea como ésta en el selector:

<item 
    android:state_selected="true" android:drawable="@drawable/list_selector_background_focus" /> 
+0

funcionó. Gracias. – Adnan