카테고리 없음
플러터 뒤로가기 2번 눌러서 종료하기 (예, 아니오 선택 버튼 샘플 코드) Flutter
투자퀸
2022. 6. 17. 21:25
플러터에서 뒤로가기 1번을 눌렀을때 '정말 종료하시겠습니까?'가 나타나고 1번 더 누르면 정말 종료되는 코드는 지난 포스팅을 참고해주세요.
오늘은 [예, 아니요]를 눌러 선택할 수 있는 기능을 살펴보겠습니다.
WillPopScope 클래스를 사용하고
onWillPop 속성에 back 버튼 처리를 위한 _onBackPressed 함수를 넣어 사용합니다.
onPressed:() 이벤트에 대해 '예'를 선택했을 때
SystemNavigator.pop(); 함수로 앱을 종료하거나
Navigator.pop() 함수로 앱말고 현재 대화창만 닫을 수 있습니다.
전체 코드는 아래와 같습니다.
Future<bool> _onBackPressed() {
return showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text("앱을 종료하시겠습니까?"),
actions: <Widget>[
ElevatedButton(onPressed: () async {
await player.stop();
SystemNavigator.pop();
},
child: const Text('예'),
),
ElevatedButton(onPressed: (){
Navigator.pop(context, false);
},
child: const Text('아니요'),
),
],
),
) ??
false;
}
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: _onBackPressed,
child: Scaffold(