Flutter:在多个列表或列之间排序、拖放

Posted

技术标签:

【中文标题】Flutter:在多个列表或列之间排序、拖放【英文标题】:Flutter: Sort, Drag and Drop between multiple lists or columns 【发布时间】:2019-07-04 10:59:09 【问题描述】:

我一直在研究一些列表排序库,如 flutter_list_drag_and_dropreorderable_listflutter_reorderable_listdragable_flutter_list 等,但都只使用一个列表。

我想要做的可以在下图中理解,这正是 Trello 应用所具有的。

任何图书馆建议或如何做到这一点?

【问题讨论】:

【参考方案1】:

只是为了完成这个老问题,对于像我这样的人在 2021 年搜索的情况,这里有一个包,可以管理将项目从一个列表拖放到另一个列表,并自行拖放这些列表。 Flutter package from pub.dev

教程可以在这里找到:Tutorial by Johannes Milke

【讨论】:

【参考方案2】:

我使用boardviewflutter 插件。

import 'package:boardview/board_item.dart';
import 'package:boardview/board_list.dart';
import 'package:boardview/boardview.dart';
@override
  Widget build(BuildContext context) 

List<BoardList> boardList = List<BoardList>();
List<BoardItem> boardItem = List<BoardItem>();
    boardItem.add(new BoardItem(
      boardList: BoardListState(),
      item: boarditem(),
      test: '1',
    ));

boardList.add(BoardList(
      index: 1,
      items: boardItem,
      header: header()
    ));

Widget header() 
    return Row( ... );

Widget boarditem() 
    return Card( ... );

 return BoardView(
      lists: boardList,
    );

【讨论】:

对于那些想要在垂直堆叠的列表之间拖动项目的人,请尝试与boardview 相同作者的checklist。【参考方案3】:

如果您还没有找到好的解决方案,可以使用 boardview 颤振插件。

它具有与 trellos 可拖动列表相同的功能。

(P.S. 我是它的开发者,我在创建它时很懒,所以没有示例 gif)

【讨论】:

我在发现这个主题之前找到了你的仓库。感谢您的贡献!我决定进一步搜索,因为没有文档并且遇到了这个。自述文件中的几行用法将使 lib 有用一百倍。 :-) 例如复制/粘贴 Pak 所写的内容。 你的BoardList的支持嵌套BoardList的吗?【参考方案4】:

我一直在研究一些列表排序库,例如flutter_list_drag_and_drop、reorderable_list、flutter_reorderable_list、dragable_flutter_list 等,但都只使用一个列表。

对!所有当前可用的库都只使用一个列表。

我还有一个名为orderable_stack的插件它基于“数据项”列表

详情请咨询orderable_stack。

您也可以参考this 链接了解更多可拖动的实现。

注意:目前orderable_stack 与 Dart 2 不兼容

希望对你有帮助

【讨论】:

以上是关于Flutter:在多个列表或列之间排序、拖放的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何在列表视图中通过拖放对项目进行排序?

在 Flutter 中通过拖放重新排序 SliverList 中的项目

同一页面上的两个重新排序列表框,防止用户在之间拖放

一般拖放 ListBoxItems

角度材质嵌套拖放

在 JHipster 中拖放重新排序的列表:推荐啥?