dev/flutter
[Flutter] Dialog, Modal
donguran
2024. 2. 22. 10:53
728x90
반응형
exit dialog code
void _showExitDialog() {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text("알림", style: TextStyle(fontSize: 21),),
content: const SingleChildScrollView(
child: ListBody(
children: [
Text("종료 하시겠습니까?", style: TextStyle(fontSize: 16),)
],
),
),
actionsAlignment: MainAxisAlignment.spaceEvenly,
actionsPadding: const EdgeInsets.only(bottom: 8.0),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text("취소"),
),
TextButton(
onPressed: () {
SystemNavigator.pop(animated: true);
},
child: const Text("확인"),
),
],
),
);
}
2024-03-06-수 TextField를 사용하려 했는데 계속해서 에러가 발생했다.
해결 방법으로 content안에 SingleChildView를 사용하는 것.
CupertinoDialog
void _showAddDataDialog() {
showCupertinoModalPopup(context: context, builder: (context) => CupertinoAlertDialog(
title: Text("Text & TextField Dialog"),
content: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Row(
children: [
Expanded(flex:rateDialogContentLeft, child: Text("place:")),
Expanded(flex:rateDialogContentRight, child: CupertinoTextField()),
],
),
Row(
children: [
Expanded(flex:rateDialogContentLeft, child: Text("name:")),
Expanded(flex:rateDialogContentRight, child: CupertinoTextField()),
],
),
Row(
children: [
Expanded(flex:rateDialogContentLeft, child: Text("password:")),
Expanded(flex:rateDialogContentRight, child: CupertinoTextField()),
],
),
Row(
children: [
Expanded(flex:rateDialogContentLeft, child: Text("Memo:")),
Expanded(flex:rateDialogContentRight, child: CupertinoTextField()),
],
),
],
),
actions: [
CupertinoButton(child: Text("cancel"), onPressed: () {Navigator.pop(context);}),
CupertinoButton(child: Text("ok"), onPressed: () {})
],
),);
}
2024-03-11-월
showDialog로 return값을 받기
bool isResult = await showDialog(context: context, builder: (context) =>
AlertDialog(
title: const Text("알림"),
content: const Text("수정하시겠습니까?"),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop(true);
},
child: const Text("update")
),
],
),);
2024-05-29-수 : showModalBottomSheet
기본 사용법
더보기
showModalBottomSheet(context: context, builder: (context) => SizedBox());
애니메이션을 적용하고 싶은 경우
showModalBottomSheet(context: context,
builder: (context) { },
sheetAnimationStyle: AnimationStyle(
duration: const Duration(seconds: 2), // 표출되는 애니메이션
reverseDuration: const Duration(seconds: 1) // 닫히는 애니메이션
)
728x90
반응형