ListView项目,list_selector_background为LayerList drawable

时间:2011-08-18 13:47:58

标签: android listview android-xml

如果我们使用ListView或ExpandableListView,则默认背景为@android:drawable/list_selector_background。我有一个ExpandableListView,显示按日期分组的数据。我喜欢状态列表list_selector_background drawable并希望保持不同状态的行为。但是对于周末(对于一些列表视图项目),我想定义一个自定义背景。但是这些项仍然应该通过list_selector_background定义的不同状态使用drawable。 我看到了不同的不合适的答案。他们中的大多数人说我应该定义自己的状态列表drawable。 除了不同状态的不同drawable之外,list_selector_background.xml还定义了<item android:state_window_focused="false" android:drawable="@color/transparent" />

所以我认为我定义了自己的状态列表drawable,只需将透明更改为我想要的颜色。问题是用于州的抽屉不公开。我真的想要接近android风格,所以我不想写自己的状态列表drawable与自己的drawables状态。

最后,我使用图层列表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>

这完全符合所需的行为,但有一个例外:/。我有我的自定义背景,该项目与list_selector_background中为draw事件定义的drawable做出反应。 但不知何故,聚焦状态不使用list_selector_background定义的drawable(<item android:state_focused="true" android:drawable="@drawable/list_selector_background_focus" />

所以我很好地问,是否有人可以想象为什么聚焦状态不起作用?我正在使用API​​级别8开发。如果您需要任何进一步的信息,我想发布。感谢

0 个答案:

没有答案