fix: 修正跳轉不正當滑動返回(ios)
修正使用 Navigator.pushReplacement (73e0f8f0) 未正常處理不正當滑動返回
This commit is contained in:
parent
13f218f089
commit
939d8ddef0
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:persistent_bottom_nav_bar_v2/persistent_bottom_nav_bar_v2.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:topic/BottomNavBar.dart';
|
import 'package:topic/BottomNavBar.dart';
|
||||||
|
import 'package:topic/NoSwipeBackRoute.dart';
|
||||||
import 'package:topic/main.dart';
|
import 'package:topic/main.dart';
|
||||||
import 'package:topic/HomePage.dart';
|
import 'package:topic/HomePage.dart';
|
||||||
import 'package:topic/HistoricalRecord.dart';
|
import 'package:topic/HistoricalRecord.dart';
|
||||||
|
|
@ -119,7 +120,7 @@ class _PersonalInfoState extends State<PersonalInfo> {
|
||||||
// replace screen with LoginPage and without navbar
|
// replace screen with LoginPage and without navbar
|
||||||
pushReplacementWithoutNavBar(
|
pushReplacementWithoutNavBar(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
NoSwipeBackRoute(
|
||||||
builder: (context) => LoginPage(),
|
builder: (context) => LoginPage(),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:flutter/rendering.dart';
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
import 'package:topic/HomePage.dart';
|
import 'package:topic/HomePage.dart';
|
||||||
import 'package:mysql_client/mysql_client.dart';
|
import 'package:mysql_client/mysql_client.dart';
|
||||||
|
import 'package:topic/NoSwipeBackRoute.dart';
|
||||||
import 'package:topic/RegisterPage.dart';
|
import 'package:topic/RegisterPage.dart';
|
||||||
void main() {
|
void main() {
|
||||||
runApp(MaterialApp(
|
runApp(MaterialApp(
|
||||||
|
|
@ -50,7 +51,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
if(loginUserEmail != ""){
|
if(loginUserEmail != ""){
|
||||||
Navigator.pushReplacement(
|
Navigator.pushReplacement(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
NoSwipeBackRoute(
|
||||||
builder: (context) => HomePage(
|
builder: (context) => HomePage(
|
||||||
email: loginUserEmail,
|
email: loginUserEmail,
|
||||||
),
|
),
|
||||||
|
|
@ -208,7 +209,7 @@ class _LoginPageState extends State<LoginPage> {
|
||||||
_setLoginInfo(email);
|
_setLoginInfo(email);
|
||||||
Navigator.pushReplacement(
|
Navigator.pushReplacement(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
NoSwipeBackRoute(
|
||||||
builder: (context) => HomePage(
|
builder: (context) => HomePage(
|
||||||
email: email,
|
email: email,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user