Android 使用ExpandableListView实现三级列表

Android 之 ExpandableListView (可折叠列表)的基本使用 本节要讲解的Adapter类控件是ExpandableListView,就是可折叠的列表,它是ListView的子类, 在ListView的基础上它把应用中的列表项分为几组,每组里又可包含多个列表项。Toast.makeText(mContext, "你点击了:" + iData.get(groupPosition).get(childPosition).getiName(), Toast.LENGTH_SHORT).show();方法需要返回true,不然不会触发 子Item的点击事件! 阅读详情

✍️作者简介:小北编程(专注于HarmonyOS、Android、Java、Web、TCP/IP等技术方向)
🐳博客主页:开源中国、稀土掘金、51cto博客、博客园、知乎、简书、慕课网、优快云
🔔如果文章对您有一定的帮助请👉关注✨、点赞👍、收藏📂、评论💬。
🔥如需转载请参考【转载须知】

先看图片

在这里插入图片描述

使用 ExpandableListView 实现三级列表

本文将介绍如何使用ExpandableListView 来实现一个三级列表。通过嵌套使用这两个组件,我们可以轻松地显示具有父级、子级和子子级的层次结构数据。

实现过程

以下是使用 ExpandableListView 实现三级列表的步骤:

  1. 创建数据模型:首先,创建表示列表项的数据模型类。您可以定义父级、子级和子子级之间的关系,并添加所需的属性和方法。

  2. 创建布局文件:为每个层级的列表项创建相应的布局文件。分别创建父级项、子级项和子子级项的布局。

  3. 创建适配器:创建 ExpandableListView 的适配器类,并继承自 BaseExpandableListAdapter。适配器负责管理数据集并渲染列表项。

  4. 实现适配器方法:在适配器类中实现必要的方法,如 getGroupCount、getChildrenCount、getGroupView 和 getChildView。根据层级的不同,选择不同的布局文件和视图。

  5. 创建 ExpandableListView 实例:在使用 ExpandableListView 的活动或片段中,创建 ExpandableListView 实例,并为其设置适配器。

  6. 绑定数据:通过适配器将数据集绑定到 ExpandableListView。确保为父级、子级和子子级项提供正确的数据,并在必要时更新适配器。

  7. 处理展开/折叠事件:为 ExpandableListView 设置 OnGroupClickListener 和 OnChildClickListener,以便处理父级和子级项的展开和折叠事件。根据点击的项和层级,执行相应的操作。

  8. 运行应用程序:编译并运行您的应用程序,查看生成的三级列表效果。确保父级、子级和子子级项正确显示,并且可以展开/折叠子级项。

通过按照以上步骤,您可以使用 ExpandableListView 实现一个具有父级、子级和子子级的三级列表。ExpandableListView 提供了方便的嵌套特性,使您可以轻松展示和管理层次结构数据,并为用户提供良好的交互体验。

实现嵌套的时候注意嵌套的ExpandableListView需要重写否则嵌套导致的数据显示不全

/**
 * @author: 
 * @date: 2023/7/11
 * 描述:解决嵌套之下显示不全的问题
 */
public class CustomExpandableListView extends ExpandableListView {
    public CustomExpandableListView(Context context) {
        super(context);
    }

    public CustomExpandableListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomExpandableListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // 解决显示不全的问题
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2
                , MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

如果感觉本文对您有所帮助请点赞收藏,谢谢支持!gitee代码链接

有兴趣的可以看看 使用RecyclerView来实现多层级的数据
有兴趣的可以看看使用 RecyclerView 和 BaseMultiItemQuickAdapter 实现固定列表

Android ExpandableListView折叠菜单的三层嵌套实现(1) 有了思路,关于 ExpandableListView 的三层嵌套就直接上手实现这里说下我的需求是有些数据是只有二级,有些数据是三级的。如果你的需求是只有三级,不需要考虑三级二级混合的情况,下面有说明怎么处理。效果图 ExpandableListView 是官方提供的一个可展示折叠列表的控件。官方文档直链它的基本用法如下ExpandableListView 的基本用法很简单,它本质上就是 ListView,所以用法也差不多,这里就不介绍了。 如果有需要的,可以参考菜鸟教程 ExpandableListView 阅读详情

相关推荐

Android之用 ExpandableListView使用解析(三级列表的实现)

 Android之用 ExpandableListView使用解析(三级列表的实现) 下载地址如下:http://download.youkuaiyun.com/download/u011068702/9839848

码莎拉蒂 3032

ExpandableListView详解

文章目录 效果图 ExpandableListView的简介与使用 去掉ExpandableListView的箭头以及自定义Indicator 解决setOnChildClickListener失效问题 解决collapseGroup(i)崩溃问题 解决group_item.xml中包含CheckBox、EditText等,点击不能展开的问题 1.效果图 2.ExpandableListView的

lzp2015的博客 2446

三级展开列表实现教程:ExpandableListView详解

适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户期望的另一个接口。适配器通过创建一个中间层,使得原本由于接口不兼容而无法合作的类可以一起工作。在Android开发中,适配器模式常用于连接UI组件与数据源。例如,ListView, GridView, 和ExpandableListView等视图组件需要将数据源(比如数组或数据库查询结果)适配为视图能够理解的格式。适配器在背后将数据源中的数据包装成View对象,然后插入到UI组件中。

weixin_31569663的博客 1087

29. 【Android教程】折叠列表 ExpandableListView

本节学习一个可折叠的 ListView,可以用在一些需要分类的场景下。通过 ExpandableListView 我们可以首先在 ListView 上展示大的分类,当点击某个类别的时候再将 ListView 做一个展开,展示该类下的所有子类供用户选择。它与 ListView 的不同主要是 ExpandableListView 提供了两级列表,可以方便的做伸展和收缩。

这是一个web全栈开发的博客,取其精华去其糟粕,争取让大家一看就懂,一学就会,一用就成~ 3129

android ExpandableListView三级菜单的使用

android ExpandableListView三级菜单的使用,多级菜单下拉与隐藏,ExpandableListView的简单使用

通过JLink下载实现工控MCU批量烧录实战案例

利用JLink下载工具实现高效稳定的工控MCU批量烧录,提升产线效率。案例详细解析了脚本配置与自动化流程,突出jlink下载的可靠性和可扩展性,适用于大规模嵌入式部署场景。

weixin_30205153的博客 812

android中用ExpandableListView实现三级扩展列表

工作中遇到一个选择车型的问题,需要在扩展列表中选择车辆品牌->车型->年款,所以必须得使用三级的扩展列表来实现,而且第三级还得使用GridView来展示。下面就一步步来吧。        1.定义需要使用的车型类,每个车辆品牌下面包含n个车型,每个车型下面包含n个年款 点击(此处)折叠或打开 /**  * 汽车的品牌类  *   *

kulapika135的专栏 584

Python抓取摄像头图像,进行AI识别(一)

本文介绍了如何用Python获取海康威视摄像头的图像并进行AI识别。主要内容包括:1)准备工作,包括摄像头IP设置和密码重置方法;2)使用Python的Requests库通过ISAPI接口获取实时图像;3)示例代码展示如何保存摄像头图像。整个过程为后续AI图像识别提供了基础,通过简单的Python代码即可实现专业监控设备的图像采集功能。

Hahafantuan的博客 1514

android中用ExpandableListView实现三级扩展列表(附源码)

工作中遇到一个选择车型的问题,需要在扩展列表中选择车辆品牌->车型->年款,所以必须得使用三级的扩展列表来实现,而且第三级还得使用GridView来展示。下面就一步步来吧。        1.定义需要使用的车型类,每个车辆品牌下面包含n个车型,每个车型下面包含n个年款 点击(此处)折叠或打开 /**  * 汽车的品牌类  *  * @author

阳光灿烂的日子的博客 2142

APB Timer验证环境搭建——学习笔记(1)

以下为个人学习笔记,如有疏漏,请大家指正补充~~APB Timer是一个简单的下行计数器,包括一个32位计数器和一组比较器,可以实现多种计时功能。包括生成一次性中断或者定时中断。

qq_41651535的博客 1578

V2签名预装失败原因及解决方案

GOOGLE最新的GTS要求targetSdkVersion 大于30的APK必须使用V2及以上签名。 但实际在预装过程中,GTS测试会失败。 后面发现这是由于预装方式的原因造成的。原来的预装方式是使用APK,指定APK使用预签名的方式。Android.mk如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := DKTest LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS

zyfzhangyafei的专栏 6303

Android ExpandableListView使用(3): ExpandableListView实现三级列表

ExpandableListView 使用解析(三级列表的实现) 在往常的设计中,往往有类似于QQ的二级列表的样式,而使用ExpandableListView变可以实现这种类似的效果。 当然,如果ExpandableListView嵌套ExpandableListView便可以实现三级列表,甚至多级条目,而本博客最终的实现效果便是三级条目。 效果图: 实体类: package c...

qq_36699930的博客 1846

初识YUV,实战NV21格式数据转换为Bitmap

初识YUV,并使用YUV数据生成Bitmap图像一、初识YUV二、采样方式2.1、YUV 4:4:42.2、YUV 4:2:22.2、YUV 4:2:2 一、初识YUV 说到YUV我们就必须先从RGB说起了,如下图所示,请各位把每个色块当成一个像素点。通常一个像素点由RGB(Alpha我们先不考虑)三原色组成。 如下图中第一个像素点,其RGB值分别为(236,102,93),而这三个值就组成了我们看到的 红色 。 然而上图中除了RGB值外,我还标出了每个像素点的YUV的值,YUV的值是怎么来的呢?直接给公

乐翁龙 7125

安卓开发,通用ExpandableListView三级选择列表。

ExpandableListView的三级选择列表。

weixin_45920642的博客 536

从零到一:手把手教你用STM32和WiFi打造智能温室大棚的物联网核心

本文详细介绍了如何利用STM32单片机和WiFi技术从零构建智能温室大棚的物联网核心系统。内容涵盖硬件选型、传感器集成、低功耗WiFi通信、自动控制逻辑及OLED显示,提供实际部署中的优化技巧和故障排查方案,帮助开发者打造稳定可靠的农业自动化解决方案。

c7d8e的博客 179

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

【ATC/DTC方法第一期】经典平均/昼夜温度周期ATC/DTC方法介绍(含Python代码实现)

WW、forever的博客 484

使用expandableListView实现三级列表

        时间过得很快,转眼年也过完了,在匆匆的岁月长河里总是莫名的心慌,可能时间真的是最残忍的那个,无论你喜或悲、乐与乏,他都持续流逝着,不快不慢。废话不多说,在开工的前一天(昨天)陈闲暇之时写了一个通过expandableListView实现三级列表的demo,昨天写完demo就没时间了,今天写到博客里,算是新年开工第一篇了。首先看一下效果图:我们都知道,通过expandableList...

chw12341的博客 778

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2645

ExpandableListView多及列表(三级列表)

上一篇我们介绍了ExpandableListView多级列表的二级列表,见天我们分析下多级列表(三级)的情况。我们先看下效果图:

豆子的博客 3264

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ExpandableListView使用解析(三级列表的实现)

转载:ExpandableListView 使用解析(三级列表的实现) 在往常的设计中,往往有类似于QQ的二级列表的样式,而使用ExpandableListView变可以实现这种类似的效果。 当然,如果ExpandableListView嵌套ExpandableListView便可以实现三级列表,甚至多级条目,而本博客最终的实现效果便是三级条目。 首先看一下效果:

louyxlovess的博客 429

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

教你用两层ExpandableListView嵌套GridView实现三级展示界面

最近项目中使用一个三级展示列表,要求第一级和第二季都可以折叠,并有不同的图标变换,第三层展示数据,可点击。经过一盘折腾,算是实现了,效果就在下面:   思路:  最外层是ExpandableListView,它的子视图又是一个ExpandableListView,这个子ExpandableListView的子视图是我们的第三级展示界面,也就是GridView。分析清楚了之后,写起来就简

BillyLu的博客 791

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 三级级联筛选列表

实现的思路:左边这个是listView ,右边是两级的expandListView 将这两个view 动态放到viewpager里面 设置好比例,剩下的就是处理点击联动事件了。 大体代码如下: activity中 放viewpager的xml <LinearLayout android:id="@+id/category_ll" android:layout_width=“match_parent” android:layout_height=“wrap_content” android:layout

m0_63935510的博客 597
上一篇: Android 使用RecyclerView和BaseMultiItemQuickAdapter实现固定列表
下一篇: 最新中国地区各种JSON、CSV数据大全
小北编程
博客等级 码龄13年 1万+粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小北编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值