반응형
개발 환경
---------------------------------
OS : Mac
개발 툴 : android studio
개발 언어 : dart
개발 프레임워크 : flutter
---------------------------------
이번 포스팅에서는 뒤로가기 버튼 두번 클릭 시 앱을 종료하는 기능을 구현한다.
WillPopScope 클래스를 사용한다.
Scaffold 아래에 willPopScope을 열어주고 onWillPop 속성에 구현한 메서드를 넣어준다,
@override
Widget build(BuildContext context) {
return Scaffold(
body: WillPopScope(
onWillPop: onWillPop,
child: SafeArea(
child: Stack(
children: [
onWillPop 메서드 전체 코드
DateTime? currentBackPressTime;
Future<bool> onWillPop() async {
DateTime currentTime = DateTime.now();
//Statement 1 Or statement2
if (currentBackPressTime == null ||
currentTime.difference(currentBackPressTime!) > const Duration(seconds: 2)) {
currentBackPressTime = currentTime;
Fluttertoast.showToast(
msg: "'뒤로' 버튼을 한번 더 누르시면 종료됩니다.",
gravity: ToastGravity.BOTTOM,
backgroundColor: const Color(0xff6E6E6E),
fontSize: 20,
toastLength: Toast.LENGTH_SHORT);
return false;
}
return true;
SystemNavigator.pop();
}
반응형
'개발노트 > Flutter' 카테고리의 다른 글
[Flutter] font 적용하기 (2) | 2023.06.09 |
---|---|
[Flutter] Don't use BuildContexts across async gaps (0) | 2023.06.06 |
[Flutter] ListView 스크롤 안되게 하기 (0) | 2023.05.02 |
[Flutter] dio 통신 interceptor retry 사용하기 (0) | 2023.04.11 |
[Flutter] Keboard 올릴때 Bottom Overflowed By Pixels 에러 처리 (0) | 2023.03.20 |
댓글