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 来实现一个卡片型的折叠列表。

  1. 初始化数据
  final List<Map<String, dynamic>> itemList = List.generate(50,(index) => {"id": index, "title": "item${index}", "content": "这里是折叠的内容"});
  1. 我需要做一个删除操作,因此需要写一个删除数据的方法
removeItem(int id) {itemList.removeWhere((element) => element["id"] == id);notifyListeners();}
  1. 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 折叠组件的使用相关推荐

  1. 【Flutter】自定义折叠组件

    一.基础组件 import 'package:flutter/material.dart';const Duration _kExpand = Duration(milliseconds: 200); ...

  2. 【Flutter】Image 组件 ( 加载网络图片 | 加载静态图片 | 加载本地图片 | path_provider 插件 )

    文章目录 一.加载网络图片 二.加载静态图片 三.加载本地图片 四.完整代码示例 五.相关资源 一.加载网络图片 参考 [Flutter]Image 组件 ( Image 组件简介 | Image 构 ...

  3. 【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 )

    文章目录 一.Image 组件简介 二.Image 构造函数 三.Image.network 构造函数 四.Image.file 构造函数 五.Image.asset 构造函数 六.Image.mem ...

  4. 【Flutter】StatefulWidget 组件 ( 创建 StatefulWidget 组件 | MaterialApp 组件 | Scaffold 组件 )

    文章目录 一.StatefulWidget 组件 二.创建 StatefulWidget 组件 三.MaterialApp 组件 四.Scaffold 组件 五. 相关资源 一.StatefulWid ...

  5. Flutter InkWell Ink组件

    文章目录 Flutter InkWell & Ink组件 Flutter InkWell & Ink组件 InkWell组件可以在用户点击是出现水波纹效果. Ink组件可以将水波纹效果 ...

  6. ElementUI折叠组件bug问题及解决

    目录 1.嵌套的折叠组件数据渲染问题 1.1场景: 1.2解决思路: 2.折叠组件中使用codemirror插件问题 2.1场景: 2.2 原因: 2.3 解决方法: 1.嵌套的折叠组件数据渲染问题 ...

  7. Flutter Clip剪裁组件

    文章目录 Flutter Clip剪裁组件 简述 使用 原图 ClipRect ClipOval ClipRRect ClipPath 自定义剪裁 Flutter Clip剪裁组件 简述 Flutte ...

  8. Flutter中动态显示组件之“坑”,我来教你怎样爬上来。

    Flutter中动态显示组件之"坑",我来教你怎样爬上来.

  9. Flutter之BoxShadow组件

    Flutter之BoxShadow组件 https://www.jianshu.com/p/3fed3b7178de

最新文章

  1. python获取matplotlib、tensorflow、pandas、numpy等的版本version
  2. GitHub 远程仓库 de 第一次配置
  3. Access 和 SQL 数据类型的比较
  4. Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程...
  5. oracle ajax储存过程分页,创建 Oracle 分页存储过程
  6. “android:process“---由日志引发的大灾难
  7. python 短网址_Python实现短网址ShortUrl的Hash运算实例讲解
  8. 常用控件 winform
  9. python 图片生成视频_python--通过cv2多张图片生成视频
  10. Stereoscopic Player 1.7.4 (SSP) 加载字幕
  11. deepin20.7安装mysql8.0.30教程
  12. python读取pcd文件_(一)读取PCD文件
  13. Win11 25188.1000补丁包介绍及下载地址
  14. matlab 2014b 图像,使用Matlab 2014b的锯齿状轮廓
  15. 安卓手机能提取当前页面的链接吗_如何获取一个app内的网页地址?
  16. 百度地图总结第三篇之定位(我的位置)
  17. 斯坦福NLP名课带学详解 | CS224n 第12讲 - NLP子词模型(NLP通关指南·完结)
  18. Chains (链 )
  19. php网络通讯,Linux_网络通讯--efax,功能说明:收发传真。 语  - phpStudy
  20. matlab 龙格现象,利用MATLAB分析数值积分中的龙格(Runge)现象(1)

热门文章

  1. 不同进制之间相互转换
  2. 百度百科里的个人介绍是怎么做上去的,人物百度百科词条创建
  3. 猎聘和BOSS直聘谁会成为在线招聘的最后赢家?
  4. 201606中通笔试题
  5. gigaset812说明书_西门子GIASET825电话机说明书.pdf
  6. 机器学习系列(三)——EM算法
  7. 计算机软件在生物学应用,计算机辅助教学软件在生物教学中的应用
  8. VIBE:3D人体姿态预测项目复现笔记
  9. 雷军的本命年:轮回中的挫败、幸运和逆袭
  10. 分数阶傅立叶变换程序汇总(转载)