我想通过写:
来更改ExpandableListView
子分隔符的颜色
android:childDivider="@drawable/yellow"
布局文件中的。但是,当我折叠项目时,我发现ExpandableListView
的背景变为黄色(@drawable/yellow
),但我只想更改子分隔符的颜色。谁能告诉我为什么?令我惊讶的是,如果我通过像
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"
/>
答案 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"
即可。如果我理解正确,这应该可以解决您的问题。
这就是我的意思: