Menubar
矢印キー移動と階層項目に対応した横並びのアプリケーションメニューを構成します。
矢印キー移動と階層項目に対応した横並びのアプリケーションメニューを構成します。
主なプロパティ
| プロパティ | 説明 |
|---|---|
| 構成 | TRMenubar は順序付きの TRMenubarMenu を横方向に配置します。各項目は1つのトリガーとポップアップの子リストを持ちます。 |
| キーボード | Material のメニュー操作により、上位トリガーとネストしたサブメニューを方向キーで移動できます。Escape は開いているメニュー階層を閉じます。 |
| 利用可否 | 1つの TRMenubarMenu に enabled: false を指定すると、ほかのメニューを保ったまま、そのコマンドだけを無効にできます。 |
| ネストレイヤー | menuChildren に TRMenuSubmenu を配置します。ネストした各ポップアップは、それぞれ枠線付きのレイヤー面を保ちます。 |
コマンドグループを示す semanticLabel をメニューバーに指定してください。メニューバーとアクティブなトリガーに枠線はなく、ポップアップレイヤーは枠線を保ちます。フォーカス項目は枠線の寸法を変えず、背景で強調します。
インストール
パッケージを追加し、公開ライブラリをインポートしてください。
flutter pub add tinyrack_uiimport 'package:tinyrack_ui/tinyrack_ui.dart';プレイグラウンド
使用方法
import 'package:material_ui/material_ui.dart';
import 'package:tinyrack_ui/tinyrack_ui.dart';
TRMenubar(
semanticLabel: 'アプリケーションメニュー',
menus: [
TRMenubarMenu(
trigger: const Text('ファイル'),
menuChildren: [
TRMenuItem(onPressed: createRack, child: const Text('新規ラック')),
TRMenuItem(onPressed: openRack, child: const Text('開く')),
],
),
],
)例
API
TRMenubar のプロパティ
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
menus | List<TRMenubarMenu> · required | 順序付きの上位メニューを定義します。 |
semanticLabel | String? · null | 支援技術にアプリケーションコマンドグループの名前を伝えます。 |
uiSize | TRUiSize · TRUiSize.md | このバー内のすべてのメニューが既定で解決するコントロールサイズを指定します。タイトルバーのような高密度なアプリケーションクロムには TRUiSize.sm を使います。 |
TRMenubarMenu のプロパティ
| Prop | 型 / デフォルト | 用途 |
|---|---|---|
trigger | Widget · required | 上位メニューのラベルを表示します。 |
menuChildren | List<Widget> · required | ポップアップに表示するコマンド、設定、区切り線、ネストしたサブメニューを指定します。 |
enabled | bool · true | トリガーからメニューを開けるかを制御します。 |
controller | MenuController? · null | 親からこのメニューを開閉したり、状態を確認したりできます。 |
focusNode | FocusNode? · null | 親から上位トリガーのフォーカスを制御できます。 |
onOpen / onClose | VoidCallback? · null | このメニューが開閉したときに通知します。 |
uiSize | TRUiSize? · null | このトリガーに限り、バーが解決したサイズを上書きします。バー全体で1つのサイズを保つため、通常は設定しないでください。 |