モーダルボトムシート Modal Bottom Sheet
画面の下から板がせり上がってきて、選択肢や小さなフォームを出す。外側を押すか下に引くと閉じる。
本物の Flutter ウィジェットが動きます(初回は数秒かかります)
どんなもの?
スマホでは指が届きやすい画面下に出るので、ダイアログより押しやすいのが利点です。
showModalBottomSheet を呼ぶだけで、背景の暗転・下スワイプで閉じる・アニメーションが付きます。
showDragHandle: true で上部のつまみ(ドラッグハンドル)も出せます。
Navigator.pop(context, 値) で閉じると、呼び出し元の await に値が返ってきます。
こんなときに
- 共有先や並び替え方法など、今の画面に対する選択肢を出したい
- 入力が2〜3項目の小さなフォーム
避けたい場面
- 長いフォームや画面遷移を伴う内容(フルスクリーンダイアログや新しい画面にする)
最小コード
final picked = await showModalBottomSheet<String>(
context: context,
showDragHandle: true,
builder: (context) => SafeArea(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
ListTile(
leading: const Icon(Icons.link),
title: const Text('リンクをコピー'),
onTap: () => Navigator.of(context).pop('copy'),
),
],
),
),
);使うウィジェット
showModalBottomSheet