flutter 路由跳转fluro

import 'package:fluro/fluro.dart';
import 'package:flutter/material.dart';
import 'package:kdbflutter/common/Application.dart';

/// fluro的路由跳转工具类
class NavigatorUtils {
 static var transition=TransitionType.native;
  static push(BuildContext context, String path,
      {bool replace = false, bool clearStack = false}) {
    FocusScope.of(context).unfocus();
    Application.router.navigateTo(context, path,
        replace: replace,
        clearStack: clearStack,
        transition: transition);
  }

  static pushResult(
      BuildContext context, String path, Function(Object) function,
      {bool replace = false, bool clearStack = false}) {
    FocusScope.of(context).unfocus();
    Application.router
        .navigateTo(context, path,
            replace: replace,
            clearStack: clearStack,
            transition: transition)
        .then((result) {
      // 页面返回result为null
      if (result == null) {
        return;
      }
      function(result);
    }).catchError((error) {
      print("$error");
    });
  }

  //跳转并关闭当前页面
  static pushAndRemoveUntil(BuildContext context, String path,
      {bool replace = false, bool clearStack = true}) {
    FocusScope.of(context).unfocus();
    Application.router.navigateTo(context, path,
        replace: replace,
        clearStack: clearStack,
        transition: transition);
  }

  /// 返回
  static void goBack(BuildContext context) {
    FocusScope.of(context).unfocus();
    Navigator.pop(context);
  }

  /// 带参数返回
  static void goBackWithParams(BuildContext context, result) {
    FocusScope.of(context).unfocus();
    Navigator.pop(context, result);
  }

//  /// 跳到WebView页
//  static goWebViewPage(BuildContext context, String title, String url){
//    //fluro 不支持传中文,需转换
//    push(context, '${Routes.webViewPage}?title=${Uri.encodeComponent(title)}&url=${Uri.encodeComponent(url)}');
//  }
//push带参
// NavigatorUtils.push(context,'${Routes.mWebViewPage}?URL=${Uri.encodeComponent(express.expressId)}');
}

 

你可能感兴趣的:(flutter)