Buscar pacotes, repositórios e categorias de apps

Capa de drag_and_drop_lists
Detalhes do pacotev0.4.2

drag_and_drop_lists

Um pacote Flutter para permitir a reorganização por arrastar e soltar de listas de dois níveis.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
20,6 mil
Curtidas
457
Pontos Pub
150

Instalar pacote

flutter pub add drag_and_drop_lists

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um pacote Flutter que permite reordenar arrastar e soltar em listas aninhadas de dois níveis. Ele suporta interações intuitivas do usuário para reorganizar itens entre múltiplos níveis, tornando-o ideal para organizar dados hierárquicos. O pacote é compatível com todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux. Projetado para simplicidade e desempenho, integra-se perfeitamente em aplicativos Flutter existentes sem exigir configuração complexa. Os desenvolvedores podem implementar estruturas de lista interativas com pouquíssimo código. O código-fonte está publicamente disponível no GitHub para transparência e contribuições.

Casos de uso

  • Reordenando listas de tarefas aninhadas
  • Criando painéis personalizáveis
  • Criando estruturas de categoria-subcategoria ordenáveis
  • Designing interactive to-do applications
  • Implementando organização de arquivos ou itens por arrastar e soltar

Principais recursos

  • Suporte a lista de dois níveis
  • Arrastar e soltar entre níveis
  • Implementação isenta de plataforma
  • Mínimo boilerplate necessário
  • Tratamento de animação embutido
  • Repositório público no GitHub

Indicado para

  • Desenvolvedores construindo interfaces hierárquicas
  • Aplicativos que exigem reordenamento dinâmico da lista
  • Projetos com estruturas de dados aninhadas
  • Ferramentas de produtividade com foco em UI
  • Equipes que desejam soluções de código aberto e sustentáveis

Considerações

  • Limitado a dois níveis de aninhamento
  • Pode exigir estilização personalizada para layouts complexos
  • O desempenho pode degradar-se com listas muito grandes
  • Não otimizado para gestos de toque além do arrasto básico
  • Nenhuma validação embutida para alvos de soltura

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

drag_and_drop_lists

Two-level drag and drop reorderable lists.

"Buy Me A Coffee"

Features

  • Reorder elements between multiple lists
  • Reorder lists
  • Drag and drop new elements from outside of the lists
  • Vertical or horizontal layout
  • Use with drag handles, long presses, or short presses
  • Expandable lists
  • Can be used in slivers
  • Prevent individual lists/elements from being able to be dragged
  • Easy to extend with custom layouts

Basic list Drag and drop expansion tiles Drag and drop using drag handles Drag and drop new lists and new items Drag and drop horizontal lists Drag and drop list tiles Drag and drop lists using slivers

Usage

To use this plugin, add drag_and_drop_lists as a dependency in your pubspec.yaml file. For example:

dependencies:
  drag_and_drop_lists: ^0.4.0

Now in your Dart code, you can use: import 'package:drag_and_drop_lists/drag_and_drop_lists.dart';

To add the lists, add a DragAndDropLists widget. Set its children to a list of DragAndDropList. Likewise, set the children of DragAndDropList to a list of DragAndDropItem. For example:

  // Outer list
  List<DragAndDropList> _contents;

  @override
  void initState() {
    super.initState();

    // Generate a list
    _contents = List.generate(10, (index) {
      return DragAndDropList(
        header: Text('Header $index'),
        children: <DragAndDropItem>[
          DragAndDropItem(
            child: Text('$index.1'),
          ),
          DragAndDropItem(
            child: Text('$index.2'),
          ),
          DragAndDropItem(
            child: Text('$index.3'),
          ),
        ],
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    // Add a DragAndDropLists. The only required parameters are children,
    // onItemReorder, and onListReorder. All other parameters are used for
    // styling the lists and changing its behaviour. See the samples in the
    // example app for many more ways to configure this.
    return DragAndDropLists(
      children: _contents,
      onItemReorder: _onItemReorder,
      onListReorder: _onListReorder,
    );
  }

  _onItemReorder(int oldItemIndex, int oldListIndex, int newItemIndex, int newListIndex) {
    setState(() {
      var movedItem = _contents[oldListIndex].children.removeAt(oldItemIndex);
      _contents[newListIndex].children.insert(newItemIndex, movedItem);
    });
  }

  _onListReorder(int oldListIndex, int newListIndex) {
    setState(() {
      var movedList = _contents.removeAt(oldListIndex);
      _contents.insert(newListIndex, movedList);
    });
  }

For further examples, see the example app or view the example code directly.

Categorias

Repositório-fonte

Projetos que usam este pacote