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