I want to change the color of child divider of ExpandableListView
by writing:
android:childDivider="@drawable/yellow"
in layout file. However, when I collapse the item, I found the background of the ExpandableListView
turn yellow (@drawable/yellow
) , but I just want to change the color of child divider. Who can tell me why? To my surprise, if I change it by java code like
expandableListView.setChildDivider(this.getResources().getDrawable(R.drawable.yellow));
it works normally. It is very weird, who can tell me the reason?
<!-- 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"
androi开发者_运维知识库d:layout_alignParentLeft="true"
android:dividerHeight="2dp"
android:divider="@drawable/yellow"
android:childDivider="@drawable/yellow"
/>
create a drawable with small height and set it to childDivider property
"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>
expandable list view:
android:childDivider="@drawable/child_separator"
Simply set child divider as the color of your choice.
<ExpandableListView
android:id="@+id/list_shopping"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:childDivider="@color/LightGrey"
android:dividerHeight="1dp" />
You just need to remove android:divider="@drawable/yellow"
from your layout. This should resolve your problem if I understood it correctly.
Here is what I mean:
精彩评论