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

section_view のカバー
パッケージ詳細v2.0.6

section_view

アルファベットとリフレッシュを含むセクションリストビューを提供し、コントロールを完全にカスタマイズできます

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

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

flutter pub add section_view

パッケージ概要

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

SectionView は、アルファベットインデックスとプルトゥリフレッシュ機能を備えたセクション付きリストビューの作成を可能にするFlutterパッケージです。セクションヘッダーの完全カスタマイズとスクロール動作の制御が可能で、連絡先リストやカタログ、またはアルファベット順に並べられた任意のデータに最適です。このパッケージはAndroid、iOS、Web、macOS、Windows、Linuxを含むすべての主要プラットフォームをサポートしています。開発者はUIおよびインタラクションをアプリのデザイン言語に合わせてカスタマイズできます。

用途

  • アルファベットインデックス付き連絡先リスト
  • グループ化されたアイテムを含む製品カタログ
  • カスタマイズ可能なスクロール可能セクション
  • 更新機能付きのデータ表示
  • リスト内のアルファベットナビゲーション

主な機能

  • アルファベット順のセクション見出し
  • プルトゥリフレッシュサポート
  • 完全にカスタマイズ可能なUI
  • クロスプラットフォーム互換性
  • セクション間のスムーズスクロール
  • カスタマイズ可能なヘッダーのスタイル

適している対象

  • アルファベット順の並べ替えが必要なアプリ
  • カスタムセクションコントロールを希望する開発者
  • 更新可能なリストを必要とするプロジェクト
  • グループ化されたデータを備えたUI重視のアプリケーション
  • クロスプラットフォームモバイルおよびWebアプリ

注意事項

  • データグループ化の手動処理が必要
  • カスタマイズは複雑さを増す可能性があります
  • パフォーマンスはリストのサイズに依存します
  • 制限された組み込みアニメーション
  • 非常に大きなデータセットには最適化されていません
  • 慎重な状態管理が必要です

元の README

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

Notice: 2.0.0 has break changing

  • The header sticky will use flutter_list_view to implement
  • Refresh control will construct by user, like pull_to_refresh
SectionView<AlphabetHeader<CountryModel>, CountryModel>(
  source: _filterCountries,
  onFetchListData: (header) => header.items,
  enableSticky: true,
  alphabetAlign: Alignment.center,
  alphabetInset: const EdgeInsets.all(4.0),
  headerBuilder: getDefaultHeaderBuilder((d) => d.alphabet),
  alphabetBuilder: getDefaultAlphabetBuilder((d) => d.alphabet),
  tipBuilder: getDefaultTipBuilder((d) => d.alphabet),
  refreshBuilder: (child) {
    return SmartRefresher(
        enablePullDown: true,
        enablePullUp: false,
        header: const WaterDropHeader(),
        controller: _refreshController,
        onRefresh: _onRefresh,
        child: child);
  },
  itemBuilder:
      (context, itemData, itemIndex, headerData, headerIndex) {
    return Padding(
      padding: const EdgeInsets.only(right: 12.0),
      child: ListTile(
          title: Text(itemData.name),
          trailing: Text(itemData.phoneCode)),
    );
  },
),

Features

  1. Show with section view
  2. Alphabet support
  3. Refresh support

Screen

Usage

Firstly, you can construct data like

List<GroupModel> data = [
    GroupModel(name: "Group 1", items: [
      ItemModel(name: "Item 1-1"),
      ItemModel(name: "Item 1-2"),
      ItemModel(name: "Item 1-3"),
      ItemModel(name: "Item 1-4"),
      ItemModel(name: "Item 1-5"),
    ]),
    GroupModel(name: "Group 2", items: [
      ItemModel(name: "Item 2-1"),
      ItemModel(name: "Item 2-2"),
      ItemModel(name: "Item 2-3"),
      ItemModel(name: "Item 2-4"),
      ItemModel(name: "Item 2-5"),
    ]),
    GroupModel(name: "Group 3", items: [
      ItemModel(name: "Item 3-1"),
      ItemModel(name: "Item 3-2"),
      ItemModel(name: "Item 3-3"),
      ItemModel(name: "Item 3-4"),
      ItemModel(name: "Item 3-5"),
    ]),
  ];

After that, you can put code into you project like as below

SectionView<GroupModel, ItemModel>(
  source: data,
  onFetchListData: (header) => header.items,
  headerBuilder: getDefaultHeaderBuilder((d) => d.name,
      bkColor: Colors.green,
      style:
          const TextStyle(fontSize: 18, color: Colors.white)),
  itemBuilder:
      (context, itemData, itemIndex, headerData, headerIndex) =>
          ListTile(
            title: Text(itemData.name),
          )),

Additional information

If you want to custom your UI, please follow /example/lib/fullSectionList.dart

Todo

  • Provide tailer load more functionality
  • Provide programaticly invoke onRefresh.

カテゴリー

依存関係

依存関係一覧 1 件

ソースリポジトリ

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

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