카테고리 없음

플러터 뒤로가기 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(