Как изменить цвет дочернего разделителя ExpanableListView по XML-файлу макета?

Я хочу изменить цвет делителя ребенка 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 ответов


создайте 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"

просто установите дочерний разделитель в качестве цвета по вашему выбору.

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

вам просто нужно удалить android:divider="@drawable/yellow" из вашего макета. Это должно решить вашу проблему, если я правильно ее понял.

вот что я имею в виду:

enter image description here