Мне нужно переместить индикатор слева направо (из-за плоского изображения). Я не смог бы добиться успеха и потому, что расширенный список просматривается внутри фрагмента, а не внутри целого действия. Есть идеи? Спасибо!
Мне нужно переместить индикатор слева направо (из-за плоского изображения). Я не смог бы добиться успеха и потому, что расширенный список просматривается внутри фрагмента, а не внутри целого действия. Есть идеи? Спасибо!
Я не знаю, как это сделать из XML, но я расскажу вам, как сделать это динамически в вашем адаптере.
Сначала вам нужно удалить индикатор группы из вашего xml
<ExpandableListView [...]
android:groupIndicator="@null" />
Затем в вашем макете родителя добавьте изображение в правильное положение вашего макета.
Затем в вашем пользовательском адаптере выполните следующие
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
...
if (isExpanded) {
groupHolder.img.setImageResource(R.drawable.group_down);
} else {
groupHolder.img.setImageResource(R.drawable.group_up);
}
...
}
Еще одно решение: 1) Первой командой setIndicator в вашем ExpandableListView в @null:
<ExpandableListView [...]
android:groupIndicator="@null" />
2) Затем создайте файл group_indicator.xml со следующими данными:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/down_icon" android:state_selected="false"></item>
<item android:drawable="@drawable/up_icon" android:state_selected="true"></item>
<item android:drawable="@drawable/down_icon"></item>
</selector>
3) Затем создайте макет group_header.xml со следующими деталями и раздуйте этот макет в методе getGroupView() ExpandableListAdapter.java:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/tvHeader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:textColor="@color/white"
android:layout_centerVertical="true"
android:textSize="16sp"/>
<ImageView
android:id="@+id/ivGroupIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/group_indicator"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
3) В методе getGroupView() вашего класса ExpandableListAdapter.java просто установите следующее:
ivGroupIndicator.setSelected(isExpanded);
При таком подходе ваши down_icon и up_icon будут работать правильно. Надеюсь, это поможет.
В файле groupcustom.xml вы можете использовать Relativelayout и поместить это изображение в
android:alignParentRight = "true";