From 27c954ec9561fb62a10855401078aecde9cd9f25 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 21 Jan 2024 16:09:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=A4=E6=AC=A1=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=80=80=E5=87=BA=E5=BA=94=E7=94=A8=20issues=20#303?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/main/controller.dart | 7 ++++--- lib/pages/main/view.dart | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/pages/main/controller.dart b/lib/pages/main/controller.dart index 15962da4..04b4ef08 100644 --- a/lib/pages/main/controller.dart +++ b/lib/pages/main/controller.dart @@ -1,5 +1,6 @@ import 'dart:async'; +import 'package:flutter/services.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:flutter/material.dart'; @@ -66,15 +67,15 @@ class MainController extends GetxController { hideTabBar = setting.get(SettingBoxKey.hideTabBar, defaultValue: true); } - Future onBackPressed(BuildContext context) { + void onBackPressed(BuildContext context) { if (_lastPressedAt == null || DateTime.now().difference(_lastPressedAt!) > const Duration(seconds: 2)) { // 两次点击时间间隔超过2秒,重新记录时间戳 _lastPressedAt = DateTime.now(); SmartDialog.showToast("再按一次退出Pili"); - return Future.value(false); // 不退出应用 + return; // 不退出应用 } - return Future.value(true); // 退出应用 + SystemNavigator.pop(); // 退出应用 } } diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index eb3444e1..7fa7b287 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -94,7 +94,10 @@ class _MainAppState extends State with SingleTickerProviderStateMixin { localCache.put('sheetHeight', sheetHeight); localCache.put('statusBarHeight', statusBarHeight); return PopScope( - onPopInvoked: (bool status) => _mainController.onBackPressed(context), + canPop: false, + onPopInvoked: (bool didPop) async { + _mainController.onBackPressed(context); + }, child: Scaffold( extendBody: true, body: PageView(