美文网首页
flutter路由跳转

flutter路由跳转

作者: MasterPaul | 来源:发表于2019-05-10 11:47 被阅读0次

跳转并移除当前所有页面


Navigator.pushAndRemoveUntil(context,new MaterialPageRoute(builder: (BuildContext context) {

return new GameScene(itemID: item['ID'],itemStyle: style,);

}),

(route) => route ==null);

跳转并且替换当前页面

 Navigator.pushReplacement(context,new MaterialPageRoute(builder: (BuildContext context){

return new GameScene(itemID: item['ID'],itemStyle: style,);

}));

封装跳转工具类,加入转场动画

import 'package:flutter/material.dart';

import 'package:flutter/animation.dart';



class NavigationUtil{

static push( BuildContext context,Widget page,{Function callback}){

pushFromRight(context, page,callback);

}

static pushNoAnimate(BuildContext context,Widget page,{Function callback}){

}

static pushFromRight(BuildContext context,Widget page,Function callback){

//自定义跳转动画

    PageRouteBuilder pageBuilder =new PageRouteBuilder(

opaque:false,

//        transitionDuration: const Duration(microseconds: 2000),

        pageBuilder:(BuildContext context, _, __) {

return page;

} ,

transitionsBuilder: (

_, Animation animation, __, Widget child,

) {

return new SlideTransition(

position:new Tween(begin:const Offset(1.0,0.0),

end: Offset.zero,

).animate(animation), child: child,

);

});

Navigator.of(context).push(pageBuilder).then((data){

callback !=null && callback(data);

});

}

static pushFromBottom(BuildContext context,Widget page,{Function callback}){

//自定义跳转动画

    PageRouteBuilder pageBuilder =new PageRouteBuilder(

opaque:false,

pageBuilder:(BuildContext context, _, __) {

return page;

} ,

transitionsBuilder: (

_, Animation animation, __, Widget child,

) {

return  new SlideTransition(

position:new Tween(begin:const Offset(0.0,1.0),

end: Offset.zero,

).animate(animation), child: child,

);

});

Navigator.of(context).push(pageBuilder).then((data){

if(callback !=null){

callback(data);

}

});;

}

static reset(BuildContext context,Widget page){

//销毁所有页面,并跳转到page页

    Navigator.of(context).pushAndRemoveUntil(new MaterialPageRoute(builder: (context){

return page;

}), (Route route)=>false);

}

static popToPage(BuildContext context,Widget page){

//销毁所有除了page的所有页面

    Navigator.of(context).pushAndRemoveUntil(new MaterialPageRoute(builder: (context){

return page;

}), (Route route)=>false);

}

}

相关文章

  • Flutter 路由

    flutter 路由 页面跳转 在flutter中界面就是组件Flutter 中的路由通俗的讲就是页面跳转。在 F...

  • Flutter 15 - Navigator (路由)组件详解1

    一、Flutter 中的路由 Flutter 中的路由通俗的讲就是页面跳转。在 Flutter 中通过 Navig...

  • Flutter(十三):路由

    1 Flutter 中的路由 Flutter 中的路由通俗的讲就是页面跳转。在 Flutter 中通过 Navig...

  • Flutter 中的路由

    .路由定义 Flutter 中的路由通俗的讲就是页面跳转。在 Flutter 中通过 Navigator 组件管理...

  • Flutter - 页面跳转(路由)、传值

    Flutter 中页面跳转通过 Navigator 和 Route 来实现。 一、页面跳转 1,常规路由页面跳转...

  • Day13 - Flutter - 路由导航

    概述 路由管理 路由基本使用 命名路由使用(重点) 页面跳转的拓展 一、路由管理 1.1、认识Flutter路由路...

  • Flutter中的路由使用

    Flutter中提供了两种配置路由跳转的方式:1、基本路由;2、命名路由 一、基本路由 1.引入将要跳转的页面 2...

  • flutter-Could not find a generat

    最近在研究flutter这个东西,在做路由跳转的时候遇到点小小的问题,动态路由跳转没有任何问题,今天配置好的路由怎...

  • Flutter路由,跳转传值

    路由 Flutter 中的路由就是页面跳转。通过 Navigator 组件管理路由导航。并提供了管理堆栈的方法。 ...

  • flutter路由跳转

    跳转并移除当前所有页面 跳转并且替换当前页面 封装跳转工具类,加入转场动画

网友评论

      本文标题:flutter路由跳转

      本文链接:https://www.haomeiwen.com/subject/qjnooqtx.html