如果想自定义展开箭头,先把默认的屏蔽掉,然后在 adapter 中的 getGroupView 中引用的那个布局里写自己的布局就行
局部效果图
工程目录
说明:
1、对象A是组对象,对象B,是一个组中一个子元素的对象
代码:
布局:
activity_main
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/group_num_tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:textSize="20sp"
/>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#ff0000"/>
<!--去掉默认箭头-->
<!--android:groupIndicator="@null"-->
<!--父item分割线-->
<!--android:divider="@null"-->
<!--子item分割线-->
<!--android:childDivider="@null"-->
<com.chen.demo.view.MyExpandableListView
android:id="@+id/expandablelistview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:childDivider="@null"
android:divider="@null"
android:groupIndicator="@null"/>
</LinearLayout>
parent
<?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="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/parent_textview"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="15dp"
android:gravity="center_vertical"/>
<TextView
android:id="@+id/child_num_textview"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_marginRight="15dp"
android:gravity="center_vertical"/>
<View
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_below="@id/parent_textview"
android:background="#00ff00"/>
</RelativeLayout>
child
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/child_textview"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_gravity="center"
android:gravity="center"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#0000ff"/>
</LinearLayout>
header
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="bottom">
<RelativeLayout
android:id="@+id/header_content"
android:layout_width="match_parent"
android:layout_height="60dp"
tools:ignore="UselessParent">
<LinearLayout
android:id="@+id/header_text_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/header_hint_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="下拉刷新"
android:textColor="#333333"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="最近更新时间:"
android:textColor="#333333"
android:textSize="12sp"/>
<TextView
android:id="@+id/header_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#333333"
android:textSize="12sp"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/header_arrow"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/header_text_ll"
android:src="@mipmap/arrow"/>
<ProgressBar
android:id="@+id/header_progressbar"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignLeft="@id/header_text_ll"
android:layout_centerVertical="true"
android:layout_marginLeft="-40dp"
android:visibility="invisible"/>
</RelativeLayout>
</LinearLayout>
footer
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/footer_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
an

本文介绍了如何自定义一个ExpandableListView,包括屏蔽默认箭头并添加自己的布局,同时实现下拉刷新和上拉加载功能。通过在adapter的getGroupView方法中设置布局,并提供了关键的代码片段,如布局文件(activity_main, parent, child, header, footer)以及相关类(TimeUtil, 子元素对象, 组对象, MyAdapter, MainActivity)。此外,还提供了一个自定义的MyExpandableListView,它是从XListview修改而来,遇到问题可以参考XListview的相关实现。"
52317909,5017817,Android NDK开发与JNI实战,"['Android开发', 'JNI', 'NDK', 'C/C++', '交叉编译']
最低0.47元/天 解锁文章
112

被折叠的 条评论
为什么被折叠?



