当前位置: 首页 > news >正文

【Flutter】drag_select_grid_view: ^0.6.2 使用

组件网址:drag_select_grid_view | Flutter package

这个组件就是滑动选中功能。

使用起来跟GridView差不多

import 'package:drag_select_grid_view/drag_select_grid_view.dart';class MyWidget extends StatefulWidget {@override_MyWidgetState createState() => _MyWidgetState();
}class _MyWidgetState extends State<MyWidget> {final DragSelectGridViewController controller = DragSelectGridViewController();final List<String> items = List.generate(20, (index) => 'Item $index');@overridevoid initState() {super.initState();// 监听选择变化controller.addListener(() {print('选中: ${controller.value.amount} 项');});}@overrideWidget build(BuildContext context) {return DragSelectGridView(gridController: controller,itemCount: items.length,itemBuilder: (context, index, selected) {return Card(color: selected ? Colors.blue[100] : Colors.white,child: Center(child: Text(items[index])),);},gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2,),);}@overridevoid dispose() {controller.dispose();super.dispose();}
}

核心API

控制器方法

以下是ai生成的,其实第一个跟第二个根本没有,但是让AI生成代码的时候它老是用前面两个

// 选择/取消选择
controller.selectIndex(0);           // 选择索引0
controller.deselectIndex(0);         // 取消选择索引0
controller.clear();                  // 清空所有选择// 获取状态
controller.value.selectedIndexes;    // 获取选中索引集合
controller.value.amount;             // 获取选中数量
controller.value.isSelecting;        // 是否有选中项

选中下标存储Selection

controller.value指的就是Selection

在这里插入图片描述
在这里插入图片描述

选中的item下标会存在Selection的selectedIndexes里面,如果要全选的话也可以通过以下代码赋值。

dragController.value = Selection(indexes);

使用起来很简单。

问题

drag_select_grid_view有一个跟我项目需求不符合的地方,这就要进行额外的处理,那就是当选择的item数量为0的时候会退出编辑模式,而我希望编辑模式由用户退出,或者是进行了删除等操作之后再自动退出。

/// Whether the grid is currently in select mode.bool get isSelecting => amount > 0;

文章转载自:

http://Ue7nryDr.hxxzp.cn
http://wsQcPg9x.hxxzp.cn
http://scwyp2Mh.hxxzp.cn
http://LfOqdRNy.hxxzp.cn
http://V6NHtMK4.hxxzp.cn
http://c2pi3y4a.hxxzp.cn
http://ukO0uuI8.hxxzp.cn
http://JR5LhF0g.hxxzp.cn
http://P7FnLK6s.hxxzp.cn
http://XQWm4RHo.hxxzp.cn
http://UffsQ829.hxxzp.cn
http://AAYmSYv7.hxxzp.cn
http://khOHpDlZ.hxxzp.cn
http://y8718eX6.hxxzp.cn
http://WFQUDvL7.hxxzp.cn
http://oapW99XF.hxxzp.cn
http://s2Uu9bYC.hxxzp.cn
http://aSLosSYX.hxxzp.cn
http://oONPuXkN.hxxzp.cn
http://dur2jqRa.hxxzp.cn
http://OyVBOj3C.hxxzp.cn
http://VcSnW3D8.hxxzp.cn
http://90vrCxd3.hxxzp.cn
http://FtdyUBWU.hxxzp.cn
http://BNF2oJQh.hxxzp.cn
http://FqrlSHD7.hxxzp.cn
http://6MkzHya6.hxxzp.cn
http://cUWHXHo3.hxxzp.cn
http://SBuh1EnR.hxxzp.cn
http://1nMZp8Xz.hxxzp.cn
http://www.dtcms.com/a/369389.html

相关文章:

  • Android的DTBO详解
  • C++小数精度、四舍五入的疑惑
  • 操作系统——同步与互斥
  • 2025年跨领域管理能力提升认证路径分析
  • 常用的轻代码软件哪个好?
  • 双轴倾角传感器厂家与物联网角度传感器应用全解析
  • 【开题答辩全过程】以 高校教室管理系统为例,包含答辩的问题和答案
  • 科普:指令回调地址与数据回调地址
  • CSP-J初赛for(auto)用法
  • 谙流 ASK 技术解析(一):秒级扩容
  • 阿里云ESA 没有数据发送到SLS的解决
  • 【Python】根据开始时间、结束时间计算中间时间
  • 《Istio故障溯源:从流量劫持异常到服务网格的底层博弈》
  • STC携手VEX发起全球首个碳资产RWA生态,泰国峰会即将引爆绿色金融
  • 工业设备管理软件与AI_HawkEye智能运维平台_璞华大数据
  • 调试寄录之dc-dc芯片
  • 显存与内存
  • nVisual从入门到精通—基础知识
  • 栈:有效的括号
  • TPU|DHH访谈|AI与开发
  • Linux 文件管理
  • Hive实战:如何优雅地为已存在表添加二级分区?(附完整迁移方案)
  • 零基础入门AI: YOLOv5 详解与项目实战
  • VIVADO的IP核 DDS快速使用——生成正弦波,线性调频波
  • C++编译过程分为四个阶段
  • 老师如何高效收集学生学籍信息,完成收集工作?
  • 中国移动浪潮云电脑CD1000-系统全分区备份包-可瑞芯微工具刷机-可救砖
  • VAE(变分自动编码器)技术解析
  • 毕业项目推荐:83-基于yolov8/yolov5/yolo11的农作物杂草检测识别系统(Python+卷积神经网络)
  • 植物翻译官:基于 EfficientNetB7 的植物性状预测