【2024年4月】弊社では、基本リモートワークで一緒に成長してくださるメンバーを広く募集させていただいております。 詳細はこちら

【Flutter】スライドアップパネル(flutter_slidable)を実装し、リストの要素を削除する方法について解説

【Flutter】スライドアップパネル(flutter_slidable)を実装し、リストの要素を削除する方法について解説
いちの

こんばんは〜
弊社ブログに辿り着いていただきありがとうございます!
株式会社メモリアインクのいちのです

この記事を読んでわかること

  • flutter_slidable パッケージの基本的な使い方
  • リストアイテムをスワイプして削除する具体的な実装方法
  • pubspec.yaml にパッケージを追加する手順
  • スライドアクションのカスタマイズ方法

開発環境

  • Dart 3.0.0
  • Flutter 3.10.0
  • flutter_slidable 3.0.1
目次

1.スライドアップパネル使用の事前準備

flutter_slidableパッケージの導入

まず、flutter_slidable パッケージをプロジェクトに導入します。pubspec.yaml ファイルを開き、以下の行をdependenciesセクションに追加してください。

dependencies:
  flutter:
    sdk: flutter
  flutter_slidable: ^3.0.1

追加後、ターミナルまたはコマンドプロンプトでflutter pub getを実行し、パッケージをプロジェクトにインストールします。

2.スライドアップパネルを使用しリストアイテムを削除

概要

  • flutter_slidableを使用して、スライドアップパネルを持つリストアイテムを作成する基本的な方法を見ていきましょう。主な構成要素はSlidableウィジェットです。このウィジェットをリストの各アイテムに適用することで、スライド時のアクションパネルを定義できます。
  • リストからアイテムを削除するには、SlidableActiononPressedコールバック内でリストから該当アイテムを削除するロジックを実装します。以下のサンプルコードでは、削除ボタンをタップした時にリストからアイテムを削除する方法を示しています。

サンプルコード

import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('スライドアクションリストデモ'),
        ),
        body: SlidableListItem(),
      ),
    );
  }
}

class SlidableListItem extends StatefulWidget {
  @override
  _SlidableListItemState createState() => _SlidableListItemState();
}

class _SlidableListItemState extends State<SlidableListItem> {
  List<String> items = List.generate(10, (index) => 'アイテム #$index');

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: items.length,
      itemBuilder: (context, index) {
        return Slidable(
          key: ValueKey(items[index]),
          startActionPane: ActionPane(
            motion: const DrawerMotion(),
            children: [
              SlidableAction(
                onPressed: (context) {
                  setState(() {
                    items.removeAt(index);
                  });
                },
                backgroundColor: Color(0xFFFE4A49),
                foregroundColor: Colors.white,
                icon: Icons.delete,
                label: '削除',
              ),
            ],
          ),
          endActionPane: ActionPane(
            motion: const DrawerMotion(),
            children: [
              // ここに他のアクションを追加できます。
            ],
          ),
          child: ListTile(
            title: Text(items[index]),
            subtitle: Text('サブタイトル'),
          ),
        );
      },
    );
  }
}

サンプルコードの解説

  • 8-20行目: MyApp クラスはアプリケーションのルートウィジェットを定義しており、MaterialApp ウィジェットを使用しています。
  • 22-25行目: SlidableListItem ウィジェットは、スライダブルなリストアイテムを表示するためのウィジェットです。このクラスは StatefulWidget であり、リストアイテムの状態を管理します。
  • 32-65行目: ListView.builder を使用してリストアイテムを動的に生成しています。各アイテムには Slidable ウィジェットが適用されており、スワイプすると削除のオプションが表示されます。
  • 40-50行目: SlidableAction ウィジェットで削除ボタンを定義し、onPressed コールバックでアイテムをリストから削除する処理を実行しています。
  • 59-62行目: ListTile ウィジェットを使用して、リストアイテムの見た目を定義しています。

動作確認

いちの

それでは、動作を確認してみましょ〜

【Flutter】スライドアップパネル(flutter_slidable)の実装し、リストの要素を削除する方法

実践的なリストの使い方についてご興味のある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

まとめ

いかがでしたでしょうか?今回は、スライドアップパネル(flutter_slidable)を実装し、リストの要素を削除する方法について解説してみました。読者様の開発の手助けに少しでもなればいいなと思いこの記事を書かせていただいております。弊社ではAndroid、iOS、Flutterを使ったアプリ開発についてのブログを多数投稿させていただいておりますので、ご興味のある方はぜひ!

いちの

自分の成長を加速させるチャンスがどこかにあるかもしれません。
変化を恐れずに新たな環境に飛び込む勇気のある方は、
未経験からIT・Webエンジニアを目指すなら【ユニゾンキャリア】
をオススメします。

リスト(ListView)要素の区切り線にご興味ある読者様。以下の記事で分かりやすく丁寧に解説しておりますので、ぜひご一読いただけますと幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメント一覧 (1件)

コメントする

目次