Флаттер: сортировка, перетаскивание между несколькими списками или столбцами

Я изучал некоторые библиотеки сортировки списков, такие как flutter_list_drag_and_drop, reorderable_list, flutter_reorderable_list, dragable_flutter_list и другие, но все они работают только с одним списком.

То, что я хочу сделать, может быть понято на изображении ниже, как раз то, что есть в приложении Trello.

Какие-нибудь библиотеки предложений или как это сделать?

Перетащить

5 ответов

Я изучал некоторые библиотеки сортировки списков, такие как flutter_list_drag_and_drop, reorderable_list, flutter_reorderable_list, dragable_flutter_list и другие, но все они работают только с одним списком.

Правильно! Все текущие доступные библиотеки работают только с одним списком.

У меня есть еще один плагин под названием orderable_stack который основан на списке "элементов данных"

Пожалуйста, обратитесь orderable_stack для более подробной информации.

Также вы можете обратиться по этой ссылке для более перетаскиваемых реализаций.

Примечание: в настоящее время orderable_stack несовместим с Dart 2

Надеюсь, это поможет вам

Я использую плагин бордового флаттера.

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,
    );
}

Если вы все еще изучаете, проверьте . Я разработчик этого пакета, добавляю пример, чтобы прояснить реализацию.

      import 'package:flutter/material.dart';
import 'package:kanban_board/custom/board.dart';
import 'package:kanban_board/models/inputs.dart';

class Example extends StatefulWidget {
  const Example({super.key});

  @override
  State<Example> createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  @override
  Widget build(BuildContext context) {
    return KanbanBoard(
      List.generate(
        8,
        (index) => BoardListsData(
            items: List.generate(
          50,
          (index) => Padding(
            padding: const EdgeInsets.all(8.0),
            child: Text(
                "Lorem ipsum dolor sit amet, Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. $index",
                style: TextStyle(
                    fontSize: 19,
                    height: 1.3,
                    color: Colors.grey.shade800,
                    fontWeight: FontWeight.w500)),
          ),
        )),
      ),
      onItemLongPress: (cardIndex, listIndex) {},
      onItemReorder:
          (oldCardIndex, newCardIndex, oldListIndex, newListIndex) {},
      onListLongPress: (listIndex) {},
      onListReorder: (oldListIndex, newListIndex) {},
      onItemTap: (cardIndex, listIndex) {},
      onListTap: (listIndex) {},
      onListRename: (oldName, newName) {},
      backgroundColor: Colors.white,
      displacementY: 124,
      displacementX: 100,
      textStyle: TextStyle(
          fontSize: 19,
          height: 1.3,
          color: Colors.grey.shade800,
          fontWeight: FontWeight.w500),
    );
  }
}

Демо в kanban_boardkanban_board :

Просто чтобы ответить на этот старый вопрос и на случай, если кто-то вроде меня ищет в 2021 году, вот пакет, который может управлять перетаскиванием элементов из одного списка в другой и перетаскивать эти списки сами.Пакет Flutter от pub.dev

Учебник можно найти здесь: Учебник Йоханнеса Милке

Если вы все еще не нашли хорошего решения, есть плагин для flutter boardview.

Он имеет те же функции, что и перетаскиваемые списки Trellos.

(PS Я его разработчик, создавал лень, поэтому для него нет примеров гифок)

Другие вопросы по тегам