为ExpandableListView设置自定义指示器不起作用

时间:2013-09-19 20:30:43

标签: android xml eclipse expandablelistview

所以我正在尝试设置自定义的ExpandableListView指示器图标,但它无法正常工作。我创建了一个图标并将其保存到drawable文件夹中。以下是图标:

enter image description here enter image description here

这是选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/arrow_up" android:state_empty="true"/>
    <item android:drawable="@drawable/arrow_down" android:state_activated="true"/>
</selector>

ExpandableListView xml:

<ExpandableListView
    android:id="@+id/lvExp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:groupIndicator="@drawable/custom_arrow" />

然而,当我启动应用程序时,根本没有指示器。知道我做错了吗?

2 个答案:

答案 0 :(得分:21)

这应该可以解决问题

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_expanded="true" android:drawable="@drawable/arrow_up" />
    <item android:drawable="@drawable/arrow_down" />
</selector>

你想要行state_expanded来扩展行,然后除了扩展之外的任何其他状态只是正常的向下箭头。但是,当没有任何内容可以扩展到

时,您应该处理state_empty

答案 1 :(得分:-1)

我认为您只需要将这一行添加到您的选择器并更改向下箭头条件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/arrow_up" android:state_empty="true"/>
    <item android:drawable="@drawable/arrow_down" android:state_expanded="true"/>
    <item android:drawable="@drawable/arrow_up" />
</selector>