12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import 'package:flutter/material.dart';
- /// Navigator工具类
- /// 更推荐使用'routers/fluro_navigator.dart'
- class AppNavigator {
- static push(BuildContext context, Widget scene) {
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => scene,
- ),
- );
- }
- /// 替换页面 当新的页面进入后,之前的页面将执行dispose方法
- static pushReplacement(BuildContext context, Widget scene) {
- Navigator.pushReplacement(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => scene,
- )
- );
- }
- /// 指定页面加入到路由中,然后将其他所有的页面全部pop
- static pushAndRemoveUntil(BuildContext context, Widget scene) {
- Navigator.pushAndRemoveUntil(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => scene,
- ), (route) => route == null
- );
- }
- static pushResult(BuildContext context, Widget scene, Function(Object) function) {
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (BuildContext context) => scene,
- ),
- ).then((result){
- // 页面返回result为null
- if (result == null){
- return;
- }
- function(result);
- }).catchError((error) {
- print("$error");
- });
- }
- /// 返回
- static void goBack(BuildContext context) {
- Navigator.pop(context);
- }
- /// 带参数返回
- static void goBackWithParams(BuildContext context, result) {
- Navigator.pop(context, result);
- }
- }
|