Android中ExpandableListView常用属性总结

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

ExpandableListView的常用属性总结,以及一些样式的具体实现

divider

这个属性用于设置父类之间的分割线样式,具体的设置见childDivider。

childDivider

这个属性是用来设置同一个父项下,子类之间的分割线的样式,文档的描述是:Drawable or color that is used as a divider for children. 也就是说可以是drawable类型或者是color类型的资源。默认的分割线大概是高度为1px,颜色为google在material design中推荐的#1E000000。所以如果只是设置颜色的话,仅仅只是改变分割线的颜色。如果使用drawable资源,似乎不能使用图片来作为子项之间的分割线,只能使用自定义的drawable资源。而且在自定义的drawable资源中,对高度的设置是没有用的,对其它属性的设置会生效。有一点要强调的是,当子项展开时,它的父项与子项之间的分隔条会变为子项之间的分割线样式,子项未展开时,父项之间的分割线按divider定义的样式,没有定义就按默认的样式。下面举几个例子:

初始状态:


改变childDivider的属性:

android:childDivider="@color/blue_700"
效果图:


android:childDivider="@drawable/child_divider"
child_divider.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid
        android:color="@color/red_700"/>
    <corners
        android:radius="3dp"/>
</shape>
这里为了显示出圆角的效果,把分割线的高度设置为5dp:

android:dividerHeight="5dp"
效果图:



注意:不管是divider还是childDivider,如果需要将分割线去掉的时候,都不要将这个属性设置为@null,如下所示:

android:divider="@null"
android:childDivider="@null"
这样设置会出问题,虽然在Android Studio中显示这样写没有问题,但如果是设置childDivider为@null,运行时点击父项会报错:

错误信息下面还有,太长了就不截图了,所以如果设置childDivider为@null,运行时点击父项会报空指针错误,如果设置divider为@null的时候,运行时不会报错,但是会出现父列表项显示不全的问题:


如图所见,本来不应该出现滚动条,手机屏幕是足以将整个列表项显示完的。所以,如果需要使分割线消失的话,不要将这两个属性设置为@null,把它们的颜色设置为与背景颜色相同的颜色即可。

还有一点,divider和childDivider之间并不会相互覆盖,比如设置了divider但没有设置childDivider,不会使childDivider的样式与divider的样式相同,而是会使用默认的样式,反之亦然

dividerHeight

用于设置分割线的高度

groupIndicator

这个属性是用于控制父项前面的小箭头用的,如果想要用自己的图片替换掉那个箭头可以这样写:

android:groupIndicator="@drawable/picture"
在Android Studio中用drawable和mipmap都可以

如果想要去掉那个小箭头,可以写:

android:groupIndicator="@null"

indicatorLeft

箭头或者自己设置的图片的右边框距离手机左边边缘的距离,类似于marginLeft

indicatorStart

箭头或者自己设置的图片的左边框距离手机左边边缘的距离,类似于marginLeft

以上两个属性相结合可以使箭头或自己设置的图片变大变小或者翻转,因为控制了箭头或图片的左右边框

indicatorRight和indicatorEnd

暂时还用不上,因为箭头一般在列表的左边,使用方法应该和上面两个方法差不多

childIndicator

用于设置子项前显示的图标,不设置的话默认是没有图标的

childIndicatorStart、childIndicatorLeft、childIndicatorEnd、childIndicatorRight

用法见indicatorStart、indicatorLeft、indicatorEnd、indicatorRight

关于父项和子项前面的图标这个问题,觉得还是在控件中设置为不可见然后在父项和子项的布局中再加上会比较好,因为父项和子项的布局是没有考虑前面的图标,按一个完整的布局来考虑的,这样就会出现遮盖住图标的情况。如果想要有图标的话,子项设置比较简单,父项因为下拉收起列表的时候图标需要有变化(上下翻转),所以需要给父项的点击设置一个监听器,除了拉下列表,还有图标要旋转180度。关于ExpandableListView的逻辑实现可参考另外一篇文章http://blog.youkuaiyun.com/sysukehan/article/details/51960473

关于ExpandableListView的属性就介绍到这里,如果以后有新的属性用到再来更新这篇文章


本篇文章中使用到的代码都已上传至github:https://github.com/sysukehan/AndroidTests.git,其中的ExpandableListViewTest模块。

掌握Android中ExpandableListView的全面应用 本文还有配套的精品资源,点击获取 简介:在Android开发中, ExpandableListView 控件用于展示层次结构数据,如菜单或目录。本文通过一个名为 ExpandableListDemo 的示例项目,详细介绍了如何有效地使用 ExpandableListView ,包括其基础、数据模型创建、适配器实现、数据绑定、点击事件... 阅读详情

相关推荐

MATLAB小电流接地系统故障选线仿真:暂态判据与实战避坑指南

单相接地故障占配电网故障的八成以上,但消弧线圈补偿后稳态特征微弱,常规保护难以定位故障线路。暂态零序电流因不受补偿影响、幅值显著,成为选线的核心依据。基于MATLAB/Simulink搭建10kV中性点经消弧线圈接地模型,可系统仿真五次谐波幅值比较、特征频带能量、小波包模极大值极性、零序有功分量及相关系数法等五种判据,并对比其适用边界。从建模参数整定、零漂处理到求解器设置,完整覆盖选线仿真的关键工程细节。这为毕业设计、配网运维及选线装置预研提供了可复现的仿真路径,帮助快速验证选线算法在不同接地电阻与故障角下

weixin_34014555的博客 375

Android开发-ExpandableListView控件

目录 1.ExpandableListView概述 1.1 定义 1.2 与ListView的区别 1.3 应用场景 2.常用属性 2.1 groupIndicator 2.2 childIndicator 2.3 childDivider 3.常用的方法 3.1 setAdapter(ExpandableListAdapter adapter) 3.2 setOnGroup...

云上道人的博客 1816

CMOS传输门实战:如何用模拟开关优化你的电路设计(附常见问题排查)

本文深入探讨了CMOS传输门在电路设计中的实战应用与优化策略。文章从核心参数选型入手,详细分析了导通电阻、电荷注入等关键特性对电路性能的影响,并提供了多路复用器构建、精密电路应用等实战架构。同时,重点分享了PCB布局、电源去耦的工程细节,以及开关不导通、信号失真、高频性能不足等常见问题的系统性排查指南,旨在帮助硬件工程师充分发挥CMOS模拟开关的效能,提升电路设计的可靠性与精度。

js777的博客 451

【Android从零单排系列二十一】《Android视图控件——ExpandableListView》

小伙伴们,在上文中我们介绍了Android视图组件ListView,本文我们继续盘点,介绍一下视图控件的ExpandableListView。ExpandableListView是Android中的一个可扩展列表视图,它继承自ListView,并提供了支持展开和折叠的功能。ExpandableListView可以展示带有分组和子项的层次结构数据,让用户可以方便地通过展开和折叠操作来浏览和查看更多的内容。

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1987

Zuken E3.series schematic/cable/Formboard 连载(1)

​ 1987-2001年,CIM-Team公司(德国)推出基于MS-DOS环境下运行的CAD软件DDS-schematic 2002年,在此基础上,推出基于windows环境下运行,应用于电气工程领域的E3.Series 2002-2006年,CIM-Team公司成为Zuken公司(日本)的一家分公司,实现电子电气系统的完整设计平台 覆盖电子、电气原理设计,三维机柜设备布局与配线设计,线缆线束设计及其各类生产报表文档生成的完整设计流程

u010930036的博客 2498

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 253

Android  ExpandableListView

一、ExpandableListView介绍     一个垂直滚动的显示两个级别(Child,Group)列表项的视图,列表项来自ExpandableListAdapter 。组可以单独展开。   1.重要方法       expandGroup(int groupPos) :在分组列表视图中展开一组,       setSelectedGroup(int groupPosition) :

qq_28533013的博客 1239

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 312

Android 之ExpandableListView几个特殊的属性

(转载)http://blog.youkuaiyun.com/t12x3456/article/details/7828620 1. 设置ExpandableListView 默认是展开的: 先实例化 exListView 然后    exListView.setAdapter(exlvAdapter);    //遍历所有group,将所有项设置成默认展开  

u010746364的博客 407

EDK2多平台编译实战:从树莓派到RK3399的UEFI固件构建

本文提供了从树莓派到RK3399的EDK2多平台编译实战指南。详细介绍了UEFI固件构建的环境搭建、交叉编译配置、平台描述文件修改及常见问题排查,帮助开发者掌握为不同ARM架构硬件构建标准化启动固件的核心技能。

weixin_29193259的博客 836

态路小课堂丨三款800G光模块方案介绍—SR8/DR8/2FR4

800G QSFP-DD 2FR4光模块使用CWDM4波长(1271/1291/1311/1331nm),单通道速率为100G,通过MUX减小光纤的数目,其光学接口采用CS接口或双芯LC接口。

poposu的博客 2386

Android ExpandableListView几个特殊的属性

原帖地址:http://blog.youkuaiyun.com/t12x3456/article/details/7828620 1. 设置ExpandableListView 默认是展开的: 先实例化 exListView 然后    exListView.setAdapter(exlvAdapter);    //遍历所有group,将所有项设置成默认展开

aoshiwenrou的专栏 575

LangGraph 实战教程:搭建一个智能办公多Agent协作平台

只存储必要的信息:不要把所有的原始数据都存储在状态中,比如销售数据可以存储在数据库或向量数据库中,状态中只存储数据的 ID 或摘要。使用类型提示:避免类型错误,提高代码的可维护性。支持增量更新:LangGraph 默认支持状态的增量更新(通过reduce函数),比如messages列表可以通过追加新消息的方式更新,而不是每次都重新创建整个列表。Normal Edge 的定义非常简单,只需要在StateGraph对象(稍后会详细讲解)上调用add_edge# 创建一个 StateGraph 对象。

SuperAGI2025 221

android ExpandableListView属性以及需要注意的地方

转自:http://blog.youkuaiyun.com/heng615975867/article/details/11465393 1. 设置ExpandableListView 默认是展开的:  先实例化exListView 然后  [java] view plaincopy exListView.setAdapter(exlvAdapter);   //遍历所有group

hshshshshs1的专栏 506

在 IW31 录入班次与当班负责人,并让 IW38 列表同步显示:基于 IWO10018 + IWOC0004 的一套可落地增强方案

摘要 本文详细介绍了在SAP PM模块中实现工厂设备维护订单增强的完整方案,重点解决两个核心需求:在订单创建时新增班次负责人和班次字段,并在订单列表中直接显示这些信息。文章从需求分析、技术设计到具体实现步骤进行了系统阐述。 关键实现步骤包括: 通过CI_AUFK结构扩展AUFK表,确保字段持久化存储 使用IWO10018增强在IW31/IW32/IW33事务中添加输入界面 通过IWOC0004增强在IW38订单列表中显示新增字段 采用优化的数据填充策略提升性能 该方案不仅满足业务需求,还考虑了用户体验和系统

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 174

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

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

Android 之ExpandableListView特殊属性

转自:  http://blog.youkuaiyun.com/t12x3456/article/details/7828620 1. 设置ExpandableListView 默认是展开的: 先实例化 exListView 然后    exListView.setAdapter(exlvAdapter);    //遍历所有group,将所有项设置成默认展开    int g

mark_xl的专栏 825

NTscan扫描工具

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

Android之ExpandableListView的属性(Group不展开)

1. 设置ExpandableListView 默认是展开的:  先实例化exListView 然后  exListView.setAdapter(exlvAdapter); //遍历所有group,将所有项设置成默认展开 intgroupCount = exListView.getCount(); for (inti=0; i<groupCount; i++) { e

heng615975867的专栏 5万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android中ExpandableListView特殊属性的玩法

1. 设置ExpandableListView 默认是展开的: 先实例化 exListView 然后    exListView.setAdapter(exlvAdapter);    //遍历所有group,将所有项设置成默认展开    int groupCount = exListView.getCount();    for (int i=0; i

zyxNobita专栏 492
上一篇: Android中ExpandableListView的使用(一)
下一篇: Android中shape的使用
sysukehan
博客等级 码龄11年 119粉丝 42原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值