Menubar
방향키 이동과 중첩 항목을 지원하는 가로 애플리케이션 메뉴를 구성해요.
방향키 이동과 중첩 항목을 지원하는 가로 애플리케이션 메뉴를 구성해요.
핵심 속성
| 속성 | 설명 |
|---|---|
| 구성 | TRMenubar는 순서가 있는 TRMenubarMenu를 가로로 배치해요. 각 항목은 트리거 하나와 팝업 자식 목록 하나를 가져요. |
| 키보드 | Material 메뉴 탐색이 상위 트리거와 중첩 메뉴 사이의 방향키 이동을 조정해요. Escape는 열린 메뉴 묶음을 닫아요. |
| 사용 가능 여부 | 한 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 | 이 트리거에 한해 바가 정한 크기를 재정의해요. 바 전체가 한 크기를 유지하도록 보통은 설정하지 마세요. |