-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathroute_util.dart
More file actions
63 lines (57 loc) · 2.26 KB
/
route_util.dart
File metadata and controls
63 lines (57 loc) · 2.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
///跳转页面 动画左右 可接受返回参数 不关闭当前页面
startActivity(BuildContext context, Widget routePage) {
return Navigator.push(
context,
// 启用动画路由,在回退时也有效
PageRouteBuilder(
transitionDuration: Duration(milliseconds: 500), //动画时间为500毫秒
pageBuilder: (context, animation, secondaryAnimation) {
return new SlideTransition(
// 移动动画
textDirection: TextDirection.ltr,
position: new Tween<Offset>(
begin: const Offset(1.0, 0.0),
end: const Offset(0.0, 0.0),
).animate(animation),
child: routePage);
}));
}
///跳转页面 动画左右 关闭当前页面
void startActivityFinish(BuildContext context, Widget routePage) {
Navigator.pushReplacement(
context,
// 启用动画路由,在回退时也有效
PageRouteBuilder(
transitionDuration: Duration(milliseconds: 500), //动画时间为500毫秒
pageBuilder: (context, animation, secondaryAnimation) {
return new SlideTransition(
// 移动动画
textDirection: TextDirection.ltr,
position: new Tween<Offset>(
begin: const Offset(1.0, 0.0),
end: const Offset(0.0, 0.0),
).animate(animation),
child: routePage);
}));
}
void pushAndRemovePage(BuildContext context, Widget routePage) {
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => routePage),
(route) => route == null,
);
}
void pushNewPage(BuildContext context, Widget routePage) {
Navigator.push(context, MaterialPageRoute(builder: (context) => routePage));
}
void pushNewPageBack(BuildContext context, Widget routePage) {
Navigator.of(context)
.push(CupertinoPageRoute(builder: (context) => routePage));
}
void popAndPushNewPage(BuildContext context, String routeName) {
Navigator.popAndPushNamed(context, routeName);
}
void pushReplacementName(BuildContext context, String routeName) {
Navigator.pushReplacementNamed(context, routeName);
}