如何通过布局xml文件更改ExpanableListView的子分隔符的颜色?

时间:2011-06-01 06:05:22

标签: android expandablelistview

我想通过写:

来更改ExpandableListView子分隔符的颜色
 android:childDivider="@drawable/yellow"
布局文件中的

。但是,当我折叠项目时,我发现ExpandableListView的背景变为黄色(@drawable/yellow),但我只想更改子分隔符的颜色。谁能告诉我为什么?令我惊讶的是,如果我通过像

这样的java代码来改变它
expandableListView.setChildDivider(this.getResources().getDrawable(R.drawable.yellow));

它正常工作。这很奇怪,谁能告诉我原因?

<!-- if I set childDivider in Layout xml, it can't work normally. 
     However, if set childDivider in java code, it work normally -->

<ExpandableListView android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:dividerHeight="2dp"
    android:divider="@drawable/yellow"
    android:childDivider="@drawable/yellow"
    />

3 个答案:

答案 0 :(得分:23)

  
    

创建一个小高度的drawable并将其设置为childDivider     属性

  
     

“child_separator.xml”:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">
    <solid android:color="@color/child_separator_color"/>
    <size android:height="1dp"/>
</shape>
  

可扩展列表视图:

android:childDivider="@drawable/child_separator"

答案 1 :(得分:3)

只需将子分隔符设置为您选择的颜色即可。

<ExpandableListView
        android:id="@+id/list_shopping"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:childDivider="@color/LightGrey"
        android:dividerHeight="1dp" />

答案 2 :(得分:2)

您只需要从布局中删除android:divider="@drawable/yellow"即可。如果我理解正确,这应该可以解决您的问题。

这就是我的意思:

enter image description here