fix: 修正跳轉不正當滑動返回(ios)
修正使用 Navigator.pushReplacement (73e0f8f0) 未正常處理不正當滑動返回
This commit is contained in:
20
lib/NoSwipeBackRoute.dart
Normal file
20
lib/NoSwipeBackRoute.dart
Normal file
@@ -0,0 +1,20 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class NoSwipeBackRoute<T> extends MaterialPageRoute<T> {
|
||||
NoSwipeBackRoute({required WidgetBuilder builder})
|
||||
: super(builder: builder);
|
||||
|
||||
@override
|
||||
bool get allowImplicitScrolling => false;
|
||||
|
||||
@override
|
||||
bool get hasScopedWillPopCallback => true;
|
||||
|
||||
@override
|
||||
bool get maintainState => true;
|
||||
|
||||
@override
|
||||
bool get popGestureInProgress => false;
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/rendering.dart';
|
||||
import 'package:persistent_bottom_nav_bar_v2/persistent_bottom_nav_bar_v2.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:topic/BottomNavBar.dart';
|
||||
import 'package:topic/NoSwipeBackRoute.dart';
|
||||
import 'package:topic/main.dart';
|
||||
import 'package:topic/HomePage.dart';
|
||||
import 'package:topic/HistoricalRecord.dart';
|
||||
@@ -119,7 +120,7 @@ class _PersonalInfoState extends State<PersonalInfo> {
|
||||
// replace screen with LoginPage and without navbar
|
||||
pushReplacementWithoutNavBar(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
NoSwipeBackRoute(
|
||||
builder: (context) => LoginPage(),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/rendering.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:topic/HomePage.dart';
|
||||
import 'package:mysql_client/mysql_client.dart';
|
||||
import 'package:topic/NoSwipeBackRoute.dart';
|
||||
import 'package:topic/RegisterPage.dart';
|
||||
void main() {
|
||||
runApp(MaterialApp(
|
||||
@@ -50,7 +51,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||
if(loginUserEmail != ""){
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
NoSwipeBackRoute(
|
||||
builder: (context) => HomePage(
|
||||
email: loginUserEmail,
|
||||
),
|
||||
@@ -208,7 +209,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||
_setLoginInfo(email);
|
||||
Navigator.pushReplacement(
|
||||
context,
|
||||
MaterialPageRoute(
|
||||
NoSwipeBackRoute(
|
||||
builder: (context) => HomePage(
|
||||
email: email,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user