From bf5de991ad03827d844a4d44e330f0baebee6702 Mon Sep 17 00:00:00 2001 From: Miolin Date: Mon, 20 May 2019 18:52:37 +0300 Subject: [PATCH] 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 --- lib/src/common.dart | 2 ++ lib/src/router.dart | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/src/common.dart b/lib/src/common.dart index 8e3e64c..4c62fce 100644 --- a/lib/src/common.dart +++ b/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 { diff --git a/lib/src/router.dart b/lib/src/router.dart index 87ca55b..cebd0f6 100644 --- a/lib/src/router.dart +++ b/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> parameters) { bool isNativeTransition = (transition == TransitionType.native || transition == TransitionType.nativeModal); - if (isNativeTransition) { + if (transition == TransitionType.cupertino || transition == TransitionType.cupertinoFullScreenDialog) { + return new CupertinoPageRoute( + settings: routeSettings, + fullscreenDialog: transition == TransitionType.cupertinoFullScreenDialog, + builder: (BuildContext context) { + return handler.handlerFunc(context, parameters); + }); + } else if (isNativeTransition) { return new MaterialPageRoute( settings: routeSettings, fullscreenDialog: transition == TransitionType.nativeModal,