Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.0.6

selectable_draggable_listbox

Lista com seleção múltipla, arrastar e soltar entre listas e reordenar incorporado.

AndroidiOSmacOSWindowsLinux
Downloads em 30 dias
19
Curtidas
26
Pontos Pub
150

Instalar pacote

flutter pub add selectable_draggable_listbox

Visão geral do pacote

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

Um pacote Flutter que fornece uma lista com suporte integrado para seleção múltipla, reordenamento por arrastar e soltar dentro de uma lista e arrastar e soltar entre várias listas. Ele aprimora a interação do usuário ao permitir manipulação intuitiva de dados por meio de gestos. Ideal para aplicativos que exigem gerenciamento dinâmico de listas, como organizadores de tarefas, criadores de playlists ou painéis de configuração. O pacote é multiplataforma, suportando Android, iOS, macOS, Windows e Linux.

Casos de uso

  • Priorização de tarefas
  • Gerenciamento de lista de reprodução
  • Classificação do painel de configuração
  • Reorganização de dados em formulários
  • Transferência de item multi-lista

Principais recursos

  • Suporte de seleção múltipla
  • Reordenamento por arrastar e soltar na lista
  • Arrastar e soltar entre listas
  • Gerenciamento de estado de seleção embutido
  • Manipulação de gestos responsiva

Indicado para

  • Desenvolvedores construindo interfaces de lista interativas
  • Aplicativos que necessitam de reorganização flexível de dados
  • Usuários que preferem fluxos de trabalho de arrastar e soltar
  • Ferramentas de gerenciamento de listas multiplataforma
  • aplicações de produtividade com foco em UI

Considerações

  • Requer manipulação cuidadosa dos estados de seleção
  • Pode ser necessário estilização personalizada para layouts complexos
  • Impacto no desempenho com listas muito grandes
  • Limitado a estruturas de dados baseadas em lista
  • Depende da estrutura correta da árvore de widgets para alvos de arrasto

README original

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

Pub License: MIT

selectable_draggable_listbox

Listbox with multiselect, drag & drop between lists, and reorder built in.

Features

  • Bind your data to a listview of custom widget
    • Simple text item widget -or-
    • Templated list item widget for more cusomizability
  • Multi-select items
    • Shift-click to select items in sequence
    • Ctrl/Cmd-click to select individual items
    • Single-select only option available
  • Reorderable
    • Click & drag the "three lines" icon to reorder item
  • Drag & Drop
    • Drag items from/to different lists
    • Each list may independently be a draggable, drop target, or both

Feature Demo

Getting started

  1. Add the latest version of this package:
  • Run flutter pub add selectable_draggable_listbox -or-
  • Edit pubspec.yaml and then run flutter pub get:
dependencies:
  selectable_draggable_listbox: ^latest_version
  1. Import the package
import 'package:selectable_draggable_listbox/selectable_draggable_listbox.dart';

Usage

// Create your list and transform it to track selected items (list can be complex objects instead):
final myList = ['Apples','Cheese','Bread','Milk'].forListbox().toList();

// Create the listbox widget
return Listbox(
  items: myList,
  itemTemplate: (context, eventManager, index, item, onSelect) {
    // Define the template used for each listitem
    return SimpleListboxItem(
      key: Key('$index'), // Key is required for reordering
      item: item,
      label: item.data,
      eventManager: eventManager,
      onSelect: onSelect,
    );
  },
  onSelect: (itemsSelected) {
    // React to items selected
    // Note: (value of isSelected is not set automatically by Listbox,
    //  due to not knowing how your state is handled)
    setState(() {
      for (var item in myList) {
        item.isSelected = itemsSelected.contains(item);
      }
    });
  },
  onReorder: (oldIndex, newIndex) {
    // React to item reordered
    setState(() {
      // Note: this is an extension provided by the package
      myList.move(oldIndex, newIndex);
    });
  },
);

Advanced Usage

For more info on additional features like Drag & Drop and Customizable Templates, see examples and API:

Support

You can support me by buying me a coffee Buy me a coffee

And also don't forget to star this package on GitHub

Categorias

Dependências

Lista de dependências 1 itens

Repositório-fonte

Projetos que usam este pacote

Ainda não há dados.