個人開発者が勉強がてらまとめているだけのサイトです

ポップアップメニュー Popup Menu

「︙」ボタンを押すと、そのボタンの位置に小さな選択肢の箱が浮かぶメニュー。

別名
オーバーフローメニュー三点メニューケバブメニューその他メニューOverflow MenuKebab Menu
動き
その場に浮くタップで開く
作り方
標準ウィジェット Flutter に入っているものだけで作れます

本物の Flutter ウィジェットが動きます(初回は数秒かかります)

別タブで大きく開く ↗

どんなもの?

縦の三点「︙」はケバブメニュー、横の三点「…」はミートボールメニューと呼ばれることもあります。

画面に置ききれない、たまにしか使わない操作をしまっておく場所です。

Flutter では PopupMenuButton を置くだけで、ボタン・開閉・位置合わせまで面倒を見てくれます。

項目は PopupMenuItem、区切り線は PopupMenuDivider で作ります。

こんなときに

  • AppBar やリストの行に、たまにしか使わない操作をまとめたい
  • 項目が2〜7個程度

避けたい場面

  • 一番よく使う操作を入れる(隠れているので気づかれない)

最小コード

PopupMenuButton<String>(
  onSelected: (value) => setState(() => picked = value),
  itemBuilder: (context) => const [
    PopupMenuItem(value: 'share', child: Text('共有')),
    PopupMenuItem(value: 'copy', child: Text('複製')),
    PopupMenuDivider(),
    PopupMenuItem(value: 'delete', child: Text('削除')),
  ],
)

使うウィジェット

PopupMenuButtonPopupMenuItemPopupMenuDivider

似ているもの・一緒に見たいもの

触ってみる ↗
ダイアログ・シート アクションシートAction Sheet

iOS でおなじみの、下から選択肢の束と、離れた「キャンセル」ボタンが出てくるシート。

下から出てくる