728x90
PopupMenuButton<String> (팝업 메뉴 버튼)
Flutter에서 제공하는 드롭다운 형태의 팝업 메뉴 위젯으로, 특정 아이콘이나 버튼을 클릭하면 여러 선택지를 포함한 메뉴가 나타납니다.
Transform.translate(
offset: const Offset(6, 0),
child: PopupMenuButton<String>(
/// 팝업 메뉴의 테두리와 round 처리
shape: RoundedRectangleBorder(
side: const BorderSide(
width: 1, color: Colors.white),
borderRadius:
BorderRadius.circular(7),
),
padding: EdgeInsets.zero,
surfaceTintColor: Colors.white,
/// z축 높이
elevation: 30,
/// 팝업메뉴의 배경 컬러
/// icon이나 child 위젯을 선택하지 않을 때 나오는 기본 아이콘의 컬러
color: Colors.white,
/// LongPressed 일 때 나오는 툴팁
/// "" 를 입력하면 안나옴
tooltip: "",
/// 팝업메뉴가 펼쳐질 때 위치설정
/// over = 아이콘 위로 펼쳐짐
/// under = 아이콘 아래에서 펼쳐짐
position: PopupMenuPosition.under,
/// itemBuilder에 들어간 String 값 중에
/// initialValue와 동일하다면 선택된 효과
//initialValue: "팝업메뉴 2입니다",
/// 펼쳤을 때 나오는 항목들 List<PopupMenuItem>
itemBuilder: (context) {
return [
_menuItem("편집"),
_menuItem("삭제"),
];
},
/// 메뉴 아이템이 펼쳐졌을 때 호출
onOpened: () {},
/// 펼쳐진 항목 선택하지 않고, 배경 터치해서 취소한 경우
onCanceled: () {},
/// 선택한 값이 들어옴
onSelected: (value) {
if (value == "삭제") {
viewModel.deleteOvenMyRecipe(
item.ovenRecipeId!);
}
},
/// child와 icon은 둘 중 한개만 사용 가능
/// 둘 다 입력 안하면 기본 아이콘 출력
// child: const Text("팝업메뉴 호출" ,style: TextStyle(fontSize: 30),),
icon: const Icon(Icons.more_vert),
/// true = 팝업메뉴 호출 가능
/// false = 팝업메뉴 호출 불가능
enabled: true,
),
),
728x90
LIST
'Flutter' 카테고리의 다른 글
Flutter에서 BLoC 패턴 제대로 이해하기 (0) | 2025.03.02 |
---|---|
Flutter 3.29 & Dart 3.7 업데이트 (1) | 2025.02.27 |
Flutter의 렌더링 파이프라인: Build 단계 이해하기 (0) | 2025.02.25 |
이미지 크기 조절하기: fast_image_resizer 사용법 (0) | 2025.02.21 |
기울어지는 카드 UI 만들기 ( Flutter ) (2) | 2025.02.19 |