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

dropdown_plus_plus のカバー
パッケージ詳細v0.1.1+1

dropdown_plus_plus

検索、キーボードナビゲーション、オフラインデータソース、リモートデータソース、簡単なカスタマイズを備えたフォーム用のシンプルで使いやすいドロップダウン。

AndroidiOSWebmacOSWindowsLinux
30日間ダウンロード
14
いいね数
11
Pub ポイント
140

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

flutter pub add dropdown_plus_plus

パッケージ概要

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

DropdownPlusPlus は、Flutter アプリケーション向けに設計された汎用的で使いやすいドロップダウンウィジェットであり、フォームへのスムーズな統合を目的としています。検索機能、キーボードナビゲーション、オフラインおよびリモートデータソースをサポートしています。パッケージは広範なカスタマイズオプションを提供し、複数のプラットフォームでの動的で応答性のあるフォーム入力に最適です。シンプルなAPIと最小限のセットアップにより、ユーザー体験を向上させつつ、開発者の柔軟性も維持しています。

用途

  • 検索可能なドロップダウンを備えたフォーム入力
  • APIからの動的データロード
  • フォーム内のオフラインデータ選択
  • キーボードでナビゲート可能なドロップダウンメニュー
  • ドロップダウン項目用のカスタマイズ可能な UI
  • クロスプラットフォームフォームコンポーネント

主な機能

  • リアルタイムフィルタリングを備えた検索可能なドロップダウン
  • リモートおよびローカルデータソースのサポート
  • キーボードナビゲーション(矢印キー、Enter)
  • 高度にカスタマイズ可能な外観と動作
  • 組み込みのロード状態とエラー状態
  • すべてのプラットフォームにおけるレスポンシブデザイン

適している対象

  • 複雑なフォームを開発する開発者
  • 検索可能なドロップダウンを必要とするアプリ
  • リモートまたはオフラインデータを必要とするプロジェクト
  • クロスプラットフォームの整合性を重視するチーム
  • 柔軟なドロップダウンが必要なUI中心のアプリケーション
  • 再利用可能なフォームコンポーネントによる迅速なプロトタイピング

注意事項

  • 非同期データの読み込みには注意が必要です
  • 複雑なテーマには追加のスタイル設定が必要になる場合があります
  • 非常に大きなデータセットを使用した場合のパフォーマンスへの影響
  • 基本的な使用方法以外のドキュメントは限られている
  • カスタムスクロール動作の必要性
  • 動的更新のために外部の状態管理に依存しています

元の README

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

dropdown_plus_plus

Simple and easy to use Dropdown in forms with search, keyboard navigation, offiline data source, remote data source and easy customization.

A maintained fork of dropdown_plus with a lot more customisations.

Getting Started

Simple Text Dropdown.

TextDropdownFormField(
  options: ["Male", "Female"],
  decoration: InputDecoration(
      border: OutlineInputBorder(),
      suffixIcon: Icon(Icons.arrow_drop_down),
      labelText: "Gender"),
  cursorColor: Colors.green,
  dropdownItemColor: Colors.red,
),

Install

packages.yaml
dropdown_plus_plus: <lastest version>

Customizable Example


 final List<Map<String, dynamic>> _roles = [
    {"name": "Super Admin", "desc": "Having full access rights", "role": 1},
    {
      "name": "Admin",
      "desc": "Having full access rights of a Organization",
      "role": 2
    },
    {
      "name": "Manager",
      "desc": "Having Magenent access rights of a Organization",
      "role": 3
    },
    {
      "name": "Technician",
      "desc": "Having Technician Support access rights",
      "role": 4
    },
    {
      "name": "Customer Support",
      "desc": "Having Customer Support access rights",
      "role": 5
    },
    {"name": "User", "desc": "Having End User access rights", "role": 6},
  ];


// ...
// ...

DropdownFormField<Map<String, dynamic>>(
    onEmptyActionPressed: () async {},
    dropdownItemSeparator: Divider(
      color: Colors.black,
      height: 1,
      ),
    decoration: InputDecoration(
        border: OutlineInputBorder(),
        suffixIcon: Icon(Icons.arrow_drop_down),
        labelText: "Access"),
    onSaved: (dynamic str) {},
    onChanged: (dynamic str) {},
    validator: (dynamic str) {},
    displayItemFn: (dynamic item) => Text(
    item['name'] ?? '',
    style: TextStyle(fontSize: 16),
    ),
    findFn: (dynamic str) async => _roles,
    filterFn: (dynamic item, str) =>
        item['name'].toLowerCase().indexOf(str.toLowerCase()) >= 0,
    dropdownItemFn: (dynamic item, position, focused,
            dynamic lastSelectedItem, onTap) =>
        ListTile(
    title: Text(item['name']),
    subtitle: Text(
        item['desc'] ?? '',
    ),
    tileColor:
        focused ? Color.fromARGB(20, 0, 0, 0) : Colors.transparent,
    onTap: onTap,
    ),
),

Options

final bool autoFocus;
final bool Function(dynamic item, String str)? filterFn;
final bool Function(dynamic item1, dynamic item2)? selectedFn;
final Future<List<dynamic>> Function(String str) findFn;

final ListTile Function(
  dynamic item,
  int position,
  bool focused,
  bool selected,
  Function() onTap,
) dropdownItemFn;

final Widget Function(dynamic item) displayItemFn;
final InputDecoration? decoration;
final Color? dropdownColor;
final Color? cursorColor;
final DropdownEditingController<T>? controller;
final void Function(dynamic item)? onChanged;
final void Function(dynamic)? onSaved;
final String? Function(T?)? validator;
final double? dropdownHeight;
final TextStyle? searchTextStyle;
final String emptyText;
final String emptyActionText;
final Future<void> Function(String)? onEmptyActionPressed;
final Widget? dropdownItemSeparator;

カテゴリー

ソースリポジトリ

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

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