Flutter ExpansionTile 折叠组件的使用
ExpansionTile 折叠组件的使用
- 前言
- ExpansionTile 的使用
- 总结
前言
在flutter 中,为我们提供了一个可折叠的组件 ExpansionTile ,而且此组件还比较容易扩展,本篇文章将记录扩展的一种,card 可折叠的名片列表。
ExpansionTile 的使用
ExpansionTile({Key key,this.leading,//和ListTitle类似,在文字前面的Widget@required this.title,//和ListTitle类似,文字this.backgroundColor,//背景this.onExpansionChanged,//展开或者关闭的监听this.children = const <Widget>[],//内部孩子this.trailing,//和ListTitle类似,右侧图标this.initiallyExpanded = false,//默认是否展开})
从上面的源码中,我们可以看到 ExpansionTile 相关的一些属性,当然,属性比较多,我挑选的是一些比较常用的属性。
这里我将使用 ListView.builder + card + ExpansionTile 来实现一个卡片型的折叠列表。
- 初始化数据
final List<Map<String, dynamic>> itemList = List.generate(50,(index) => {"id": index, "title": "item${index}", "content": "这里是折叠的内容"});
- 我需要做一个删除操作,因此需要写一个删除数据的方法
removeItem(int id) {itemList.removeWhere((element) => element["id"] == id);notifyListeners();}
- ExpansionTile 的使用
ListView.builder(itemCount: model.itemList.length,itemBuilder: (context, index) {var item = model.itemList[index];return Card(// 记录唯一的keykey: PageStorageKey(item["id"]),child: ExpansionTile(expandedCrossAxisAlignment: CrossAxisAlignment.end,expandedAlignment: Alignment.centerRight,childrenPadding: EdgeInsets.all(10),maintainState: true,title: Text(item["title"],),children: [Text(item["content"]),TextButton.icon(onPressed: () => model.removeItem(item['id']),icon: const Icon(Icons.delete),label: const Text('Remove',),style: TextButton.styleFrom(primary: Colors.red),)],),);},)
运行结果如下
总结
整篇文章的记录比较简单,生成卡片折叠列表后,可以展开选项,并点击删除按钮,可以删除当前的cell 选项
Flutter ExpansionTile 折叠组件的使用相关推荐
- 【Flutter】自定义折叠组件
一.基础组件 import 'package:flutter/material.dart';const Duration _kExpand = Duration(milliseconds: 200); ...
- 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )
文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...
- 【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 )
文章目录 一.Image 组件简介 二.Image 构造函数 三.Image.network 构造函数 四.Image.file 构造函数 五.Image.asset 构造函数 六.Image.mem ...
- 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )
文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...
- Flutter InkWell Ink组件
文章目录 Flutter InkWell & Ink组件 Flutter InkWell & Ink组件 InkWell组件可以在用户点击是出现水波纹效果. Ink组件可以将水波纹效果 ...
- ElementUI折叠组件bug问题及解决
目录 1.嵌套的折叠组件数据渲染问题 1.1场景: 1.2解决思路: 2.折叠组件中使用codemirror插件问题 2.1场景: 2.2 原因: 2.3 解决方法: 1.嵌套的折叠组件数据渲染问题 ...
- Flutter Clip剪裁组件
文章目录 Flutter Clip剪裁组件 简述 使用 原图 ClipRect ClipOval ClipRRect ClipPath 自定义剪裁 Flutter Clip剪裁组件 简述 Flutte ...
- Flutter中动态显示组件之“坑”,我来教你怎样爬上来。
Flutter中动态显示组件之"坑",我来教你怎样爬上来.
- Flutter之BoxShadow组件
Flutter之BoxShadow组件 https://www.jianshu.com/p/3fed3b7178de
最新文章
- python获取matplotlib、tensorflow、pandas、numpy等的版本version
- GitHub 远程仓库 de 第一次配置
- Access 和 SQL 数据类型的比较
- Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程...
- oracle ajax储存过程分页,创建 Oracle 分页存储过程
- “android:process“---由日志引发的大灾难
- python 短网址_Python实现短网址ShortUrl的Hash运算实例讲解
- 常用控件 winform
- python 图片生成视频_python--通过cv2多张图片生成视频
- Stereoscopic Player 1.7.4 (SSP) 加载字幕
- deepin20.7安装mysql8.0.30教程
- python读取pcd文件_(一)读取PCD文件
- Win11 25188.1000补丁包介绍及下载地址
- matlab 2014b 图像,使用Matlab 2014b的锯齿状轮廓
- 安卓手机能提取当前页面的链接吗_如何获取一个app内的网页地址?
- 百度地图总结第三篇之定位(我的位置)
- 斯坦福NLP名课带学详解 | CS224n 第12讲 - NLP子词模型(NLP通关指南·完结)
- Chains (链 )
- php网络通讯,Linux_网络通讯--efax,功能说明:收发传真。
语 - phpStudy
- matlab 龙格现象,利用MATLAB分析数值积分中的龙格(Runge)现象(1)