1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【学習メモ:Flutter入門編】Drawerの使い方

Last updated at Posted at 2024-03-28

これから「Flutter」を勉強していこうと思っている人向けには「メモ」程度で参照してみてください。

■ メニューボタンの呼び方
以下の種類がある。

  • ハンバーガーメニュー
  • ケバブメニュー
  • ドネルメニュー
  • ミートボールメニュー
  • ベントーメニュー

■ Drawer(ドロワー)メニューとは?
「ドロワー」は「引き出し」という意味で、メニューの表示方法が横から引き出しのように出てくるように見える事から成り立っている。

「ドロワー」の中に含まれている内容が「サイドメニュー」となる。

■ サイドメニューの構成
一番上は「DrawerHeader(ドロワーヘッダー)」を定義する。
各メニューは「ListTile(リストタイル)」のWidgetを利用する。

見た目のレイアウトは「column」or「ListView」のWidgetの子供(children:)に追加する形で問題ない。

■ メニューのアクションを登録
「ListTile」の項目に「onTap:」の項目を追加して、実行する関数等(go_router)を利用して画面遷移させる。

【サンプルコード】

return ListView(
  children: [
    DrawerHeader(
      child: Text('ドロワーヘッダー')
    ),
    ListTile(
      title: Text('メニュー1'),
+     onTap: () {
+       debugPrint('「メニュー1」がタップされました。');
+     }
    ),
    ListTile(
      title: Text('メニュー2'),
+     onTap: () {
+       debugPrint('「メニュー2」がタップされました。');
+     }
    ),
  ],
);

また「ListTile」には文字の横にアイコン等も描画が可能。

■ 「Drawer」メニューの追加方法
作成したサイドメニューのWidgetをimportとしておき、メインコードの方で「Drawer」に関する定義を追加する事で実現が可能。なお、実際にメニュー画面に表示させるよう為には、「Scaffold」の「drawer:」という項目への定義も忘れてはいけない。

【サンプルコード】

const drawer = Drawer(
  child: SideMenu(),
);

final scaffold = Scaffold(
    drawer: drawer,
);

上記定義で、画面にドロワー(引き出し)が連結されることになります。
また、「ハンバーガーメニュー」のアイコンについては、Flutterが自動的に表示してくれるようです。

■ 「Scaffold(スキャフォールド)」の6つの便利機能について
画面レイアウトを作成する際に定義している「Scaffold」には「6つ」の便利機能が存在している。

  • appBar(アップバー):画面上部(ヘッダー)
  • drawer(ドロワー):左サイドメニュー
  • endDrawer(エンドドロワー):右サイトメニュー
  • body(ボディ):本体
  • floatingActionButton(フローティングアクションボタン:FAB):画面右下にアクションボタンを表示
  • bottomNavigationBar(ボトムナビゲーションバー):画面下部(フッターナビゲーションメニュー)

最後に

Flutter(Dart言語)に関する最低限の情報を「学習メモ」としてまとめてみました。
内容に誤りがありそうであれば、遠慮なくご指摘いただけますと幸いです。

【学習の参考にした動画】
素敵な解説動画の作成ありがとうございます。
本記事の内容より。動画を見た方が解りやすいと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?