瀏覽代碼

Added transitions with CupertinoPageRoute (#103)

* #100, #85 added Cupertino transition type
* #100, #85 added CupertinoPageRoute
added support swipe to back with using CupertinoPageRoute
* added Cupertino full screen dialog transition type
* added Cupertino full screen dialog transition
Miolin 6 年之前
父節點
當前提交
bf5de991ad
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 2 0
      lib/src/common.dart
  2. 9 1
      lib/src/router.dart

+ 2 - 0
lib/src/common.dart

@@ -46,6 +46,8 @@ enum TransitionType {
   inFromBottom,
   fadeIn,
   custom, // if using custom then you must also provide a transition
+  cupertino,
+  cupertinoFullScreenDialog,
 }
 
 enum RouteMatchType {

+ 9 - 1
lib/src/router.dart

@@ -12,6 +12,7 @@ import 'dart:async';
 import 'package:fluro/fluro.dart';
 import 'package:fluro/src/common.dart';
 import 'package:flutter/material.dart';
+import 'package:flutter/cupertino.dart';
 
 class Router {
   static final appRouter = new Router();
@@ -123,7 +124,14 @@ class Router {
         (RouteSettings routeSettings, Map<String, List<String>> parameters) {
       bool isNativeTransition = (transition == TransitionType.native ||
           transition == TransitionType.nativeModal);
-      if (isNativeTransition) {
+      if (transition == TransitionType.cupertino || transition == TransitionType.cupertinoFullScreenDialog) {
+        return new CupertinoPageRoute<dynamic>(
+            settings: routeSettings,
+            fullscreenDialog: transition == TransitionType.cupertinoFullScreenDialog,
+            builder: (BuildContext context) {
+              return handler.handlerFunc(context, parameters);
+            });
+      } else if (isNativeTransition) {
         return new MaterialPageRoute<dynamic>(
             settings: routeSettings,
             fullscreenDialog: transition == TransitionType.nativeModal,