美文网首页
Flutter基础总结(8) 自定义路由跳转

Flutter基础总结(8) 自定义路由跳转

作者: 总会颠沛流离 | 来源:发表于2020-03-17 16:53 被阅读0次

征服畏惧,建立自信的最快最确实的方法,就是去做你害怕的事情,知道你获得成功的经验。

1:效果图

image.png image.png image.png

2:代码

1:main.mart
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

import 'FirstPage.dart';

void main(){
  runApp(MyApp());
}
class MyApp  extends StatelessWidget{
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
  title: "动画的Demo",
  theme: ThemeData(
    primaryColor:  Colors.blue
  ),
  home: FirstPage(),
);
}


}
2FirstPage.dart
  import 'package:flutter/cupertino.dart';
  import 'package:flutter/material.dart';

  import 'custom_router.dart';

//第一个页面
class FirstPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
  appBar: AppBar(
    title: Text(
      "FirstPage",
      style: TextStyle(fontSize: 30.0),
    ),
    elevation: 0.0,
  ),
  body: Center(
    child: MaterialButton(
      child: Icon(
        Icons.navigate_next,
        color: Colors.red,
        size: 64,
      ),
      onPressed: () {
        Navigator.of(context).push(CustomRoute(SecondPage()));
      },
    ),
  ),
);
}


class SecondPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
  backgroundColor: Colors.pinkAccent,
  appBar: AppBar(
    title: Text(
      "SeconPage",
      style: TextStyle(fontSize: 30.0),
    ),
    backgroundColor: Colors.pinkAccent,
    leading: Container(),
    elevation: 0.0,
  ),
  body: Center(
    child: MaterialButton(
      child: Icon(
        Icons.navigate_before,
        color: Colors.white,
        size: 50,
      ),
      onPressed: (){
        Navigator.of(context).pop();
      },
    ),

  ),
);
}
}
3:CustomRoute.dart
import 'package:flutter/cupertino.dart';

//自定义路由实现翻转,渐变 ,左右滑动
class CustomRoute extends PageRouteBuilder {
final Widget widget;

CustomRoute(this.widget)
  : super(
//设置动画时长1秒
  transitionDuration: Duration(seconds: 1),
  //构架页面
  pageBuilder: (BuildContext context,
      Animation<double> animation1,
      Animation<double> animation2,) {
    return widget;
  },
  /* 过渡生成器*/
  transitionsBuilder: (BuildContext context,
      Animation<double> animation1,
      Animation<double> animation2,
      Widget child) {
    //翻转
    /*    return RotationTransition(
              turns: Tween(begin: 0.0, end: 1.0).animate(CurvedAnimation(
                  parent: animation1, curve: Curves.fastOutSlowIn)),
              //缩放
              child: ScaleTransition(
                scale: Tween(begin: 0.0, end: 1.0).animate(CurvedAnimation(
                    parent: animation1,
                     //动画曲线
                    curve: Curves.fastOutSlowIn)),
                child: child,
              ));*/
    //左右滑动
    return SlideTransition(
        position: Tween<Offset>(
            begin: Offset(-1.0, 0.0),
            end: Offset(0.0, 0.0)

        ).animate(CurvedAnimation(parent:animation1,curve:Curves.fastOutSlowIn)),
         child:  child,
    );
   /* return FadeTransition(
      //不透明
      opacity: Tween(
        begin: 0.0,end: 1.0

      ).animate(CurvedAnimation(
        parent: animation1,
        curve: Curves.fastOutSlowIn
      )),
     child:  child,
    );*/
  });
 }

githup:https://github.com/xuezhihuixzh/Flutter_demo

相关文章

  • Flutter基础总结(8) 自定义路由跳转

    征服畏惧,建立自信的最快最确实的方法,就是去做你害怕的事情,知道你获得成功的经验。 1:效果图 2:代码 1:ma...

  • 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基础总结(8) 自定义路由跳转

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