4

If we use a ListView or an ExpandableListView the default background is @android:drawable/list_selector_background. I have an ExpandableListView which shows data grouped by date. I like the state list list_selector_background drawable and want to keep the behaviour for different states. But for the weekend (for some of the list view items) i'd like to define a custom background. But these items should still use the drawables for different states defined through list_selector_background. I saw different not suitable answers. Most of them say i should define my own state list drawable. The list_selector_background.xml defines, besides different drawable for different states, <item android:state_window_focused="false" android:drawable="@color/transparent" />

So i thought i define my own state list drawable and just change the transparent to my desired color. The problem is the drawables used for the states are not public. I really want to stay close to the android style so i don't want to write my own state list drawable with own drawables for states.

At the end i wrote a solution using a layer list drawable.

<?xml version="1.0" encoding="utf-8"?>
  <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item 
       android:drawable="@color/DarkBlue"
       android:id="@+id/background" />

    <item 
       android:drawable="@android:drawable/list_selector_background"
       android:id="@+id/list_selector_background" />

  </layer-list>

This perfectly matches the desired behaviour with one exception :/. I have my custom background and the item reacts with drawable defined in list_selector_background for press events. But somehow the focused state does not use the drawable defined by list_selector_background (<item android:state_focused="true" android:drawable="@drawable/list_selector_background_focus" />)

So i kindly ask if anyone can imagine why the focused state does not work? I am developing with API level 8. If you need any further information i'd like to post. Thanks

Diego Frehner
  • 2,396
  • 1
  • 28
  • 35

0 Answers0