パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.0.6

selectable_draggable_listbox

複数選択、リスト間のドラッグアンドドロップ、および組み込みの再順序付け機能付きのリストボックス。

AndroidiOSmacOSWindowsLinux
30日間ダウンロード
19
いいね数
26
Pub ポイント
150

パッケージをインストール

flutter pub add selectable_draggable_listbox

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

マルチセレクション、リスト内のドラッグアンドドロップによる並べ替え、複数のリスト間でのドラッグアンドドロップを組み込みサポートするFlutterパッケージです。ジェスチャーによる直感的なデータ操作により、ユーザーインタラクションを向上させます。タスクオーガナイザー、プレイリストビルダー、または設定パネルなど、動的リスト管理が必要なアプリケーションに最適です。クロスプラットフォームで、Android、iOS、macOS、Windows、Linuxをサポートしています。

用途

  • タスクの優先順位付け
  • プレイリスト管理
  • 設定パネルの並べ替え
  • フォーム内のデータの再編成
  • マルチリスト項目の転送

主な機能

  • 複数選択のサポート
  • リスト内ドラッグアンドドロップによる並べ替え
  • クロスリストドラッグアンドドロップ
  • 組み込み選択状態管理
  • 応答性のあるジェスチャー処理

適している対象

  • インタラクティブなリストインターフェースを構築する開発者
  • 柔軟なデータ再配置を必要とするアプリ
  • ドラッグアンドドロップワークフローを好むユーザー
  • クロスプラットフォームリスト管理ツール
  • UI重視の生産性アプリケーション

注意事項

  • 選択状態の取り扱いには注意が必要です
  • 複雑なレイアウトにはカスタムスタイルが必要になる場合があります
  • 非常に大きなリストによるパフォーマンスへの影響
  • リストベースのデータ構造に限定
  • ドラッグターゲットの正しいウィジェットツリー構造に依存する

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

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

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。