浏览代码

Add util to replace page

Vishnu Mohandas 4 年之前
父节点
当前提交
5da2f35ee4
共有 1 个文件被更改,包括 27 次插入17 次删除
  1. 27 17
      lib/utils/navigation_util.dart

+ 27 - 17
lib/utils/navigation_util.dart

@@ -2,22 +2,32 @@ import 'package:flutter/material.dart';
 
 void routeToPage(BuildContext context, Widget page) {
   Navigator.of(context).push(
-    PageRouteBuilder(
-      pageBuilder: (BuildContext context, Animation<double> animation,
-          Animation<double> secondaryAnimation) {
-        return page;
-      },
-      transitionsBuilder: (BuildContext context, Animation<double> animation,
-          Animation<double> secondaryAnimation, Widget child) {
-        return Align(
-          child: FadeTransition(
-            opacity: animation,
-            child: child,
-          ),
-        );
-      },
-      transitionDuration: Duration(milliseconds: 200),
-      opaque: false,
-    ),
+    _buildPageRoute(page),
+  );
+}
+
+void replacePage(BuildContext context, Widget page) {
+  Navigator.of(context).pushReplacement(
+    _buildPageRoute(page),
+  );
+}
+
+PageRouteBuilder<dynamic> _buildPageRoute(Widget page) {
+  return PageRouteBuilder(
+    pageBuilder: (BuildContext context, Animation<double> animation,
+        Animation<double> secondaryAnimation) {
+      return page;
+    },
+    transitionsBuilder: (BuildContext context, Animation<double> animation,
+        Animation<double> secondaryAnimation, Widget child) {
+      return Align(
+        child: FadeTransition(
+          opacity: animation,
+          child: child,
+        ),
+      );
+    },
+    transitionDuration: Duration(milliseconds: 200),
+    opaque: false,
   );
 }