Flutter 拖拽排序组件 ReorderableListView

Flutter 拖拽排序组件 ReorderableListView,第1张

概述注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 ReorderableListView是通过长按拖动某一项

注意:无特殊说明,Flutter版本及Dart版本如下:

Flutter版本: 1.12.13+hotfix.5Dart版本: 2.7.0

ReorderableListVIEw是通过长按拖动某一项到另一个位置来重新排序的列表组件

ReorderableListVIEw需要设置childrenonReorder属性,children是子控件,onReorder是拖动完成后的回调,用法如下:

List<String> items = List.generate(20,(int i) => '$i');ReorderableListVIEw(  children: <Widget>[    for (String item in items)      Container(        key: ValueKey(item),height: 100,margin: EdgeInsets.symmetric(horizontal: 50,vertical: 10),decoration: Boxdecoration(            color:                colors.primarIEs[int.parse(item) % colors.primarIEs.length],borderRadius: borderRadius.circular(10)),)  ],onReorder: (int oldindex,int newIndex) {    if (oldindex < newIndex) {      newIndex -= 1;    }    var child = items.removeAt(oldindex);    items.insert(newIndex,child);    setState(() {});  },)

ReorderableListVIEw的每个子控件必须设置唯一的key,ReorderableListVIEw没有“懒加载”模式,需要一次构建所有的子组件,所以ReorderableListVIEw并不适合加载大量数据的列表,它适用于有限集合且需要排序的情况,比如手机系统里面设置语言的功能,通过拖动对语言排序。

onReorder是拖动完成的回调,第一个参数是旧的数据索引,第二个参数是拖动到位置的索引,回调里面需要对数据进行排序并通过setState刷新数据。

效果如下:

header参数显示在列表的顶部,用法如下:

ReorderableListVIEw(  header: Text(    '一枚有态度的程序员',style: TextStyle(color: colors.red,FontSize: 20),)  ...)

效果如下:

reverse`参数设置为true且ReorderableListVIEw的滚动方向为垂直时,滚动条直接滑动到底部,如果是水平方向则滚动条直接滑动到右边,默认为false,用法如下:

ReorderableListVIEw(  reverse: true,...)

scrollDirection`参数表示滚动到方向,默认为垂直,设置为水平方向如下:

ReorderableListVIEw(  scrollDirection: Axis.horizontal,...)

由于改为水平滚动,所以子控件的宽度要设置,否则会出现没有列表。

效果如下:

今天的文章对大家是否有帮助?如果有,请在文章底部留言和点赞,以表示对我的支持,你们的留言、点赞和转发关注是我持续更新的动力!

更多相关阅读:Flutter系列文章总览全网最详细的一篇Flutter 尺寸限制类容器总结Flutter DataTable 看这一篇就够了Flutter Widgets 之 PageView 总结

以上是内存溢出为你收集整理的Flutter 拖拽排序组件 ReorderableListView全部内容,希望文章能够帮你解决Flutter 拖拽排序组件 ReorderableListView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/998991.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存