FrameWork/Flutter

WillPopScope을 통해 뒤로가기 버튼 기능 활성화 하기

JHeaon 2023. 11. 9. 03:18

 

이번에는 WillPopScope을 통해 뒤로가기를 누르면 전 화면으로 넘어가도록 하는 방법에 대해 정리한다. 흔히 아이폰이나 현재 나오고 있는 안드로이드 폰 같은 경우 뒤로가기 버튼이나 홈 버튼 없이 제스쳐를 통해 해당 행동을 제어하고 있다.

 

하지만 그 반대의 경우로 홈, 뒤로가기 버튼이 존재한다면 해당 버튼을 눌렀을 때, 재 역활을 할 수 있도록 설정하여야 한다.

 


 

 

WillPopScope

willPopScope 위젯은 주로 Scffold 위젯을 감싸서 뒤로가기 버튼을 제어할때 자주 사용한다. 사용 방법은 리턴하는 Scaffold 부분을 willPopScope로 감싸고, onWillPop을 통해 이를 제어한다.

 

현재 여기서 사용하고 있는 컨트롤러는 https://jheaon.tistory.com/220 여기서 생성했던 인스턴스를 의미한다. 

 

- main.dart

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class MainScreen extends StatefulWidget {
  const MainScreen({super.key});

  @override
  State<MainScreen> createState() => _MainScreenState();
}

class _MainScreenState extends State<MainScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
      ),
      body: WillPopScope(
        onWillPop: () async{
          if (await controller.canGoBack()){
            await controller.goBack();
            return false;
          }
          return true;
        },
          child: WebViewWidget(controller: controller)
      ),
      
    );
  }
}

'FrameWork/Flutter'의 다른글

  • 현재글 WillPopScope을 통해 뒤로가기 버튼 기능 활성화 하기

관련글