Как изменить цвет дочернего разделителя 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"
    />

Ответ 1

создайте вытягиваемый с небольшой высотой и установите его на 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"

Ответ 2

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

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

Ответ 3

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

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

enter image description here