zoukankan      html  css  js  c++  java
  • 压栈过渡动画

    重写过渡动画代码:

    import 'package:flutter/material.dart';

    class CustomRoute extends PageRouteBuilder {
    final Widget widget;
    CustomRoute(this.widget)//重写构造方法----调用此方法直接调用的就是这个方法 类似于重写init 此处的widget 传递过来的就是页面 因为本类是重写了压栈的方法
    :super(
    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 FadeTransition(
    opacity: Tween(begin: 0.0,end: 1.0)//类似于alpha 透明度效果
    .animate(CurvedAnimation(
    parent: animation1,//默认就是animation1
    curve: Curves.fastOutSlowIn//动画曲线 先快后慢 ,快出慢进等
    )),
    child: child,//传入子页面
    );//渐隐渐现
    }
     
    );
    }
     
    使用代码:
    import 'package:flutter/material.dart';
    import 'second_page.dart';
    import 'custom_route.dart';
    class FirstPage extends StatelessWidget {
    const FirstPage({Key key}) : super(key: key);

    @override
    Widget build(BuildContext context) {
    return Scaffold(
    backgroundColor: Colors.orange,
    appBar: AppBar(
    title: Text('First Page',style: TextStyle(fontSize: 36.0)),
    elevation: 1.0,//默认4.0 导航栏浮层效果
    ),
    body: Center(
    child: MaterialButton(
    child: Icon(
    Icons.navigate_next,
    color:Colors.white,
    size:64.0
    ),
    onPressed: (){
    Navigator.of(context).push(CustomRoute(SecondPage()));
    }
    ),
    ),
    );
    }
    }
    总结:
     

     

    //过渡动画

    重写PageRouteBuilder{

    transitionsBuilder ()//过渡构造器{

    return FadeTransition{//过渡方法

    //alpha 的更改

    opacity:Tween(begin:xx,end:xxx).animate(CurvedAnimation

    ){

    curve: Curves.fastOutSlowIn//动画曲线  先快后慢 ,快出慢进等

     

    }

     

    }

     

    }

     

     

    }

     

    导航

    elevation:xxx 导航栏浮层效果 0 是无效果内嵌到页面中,默认4.0

    appbar

    leading: Container(),//字体居中 

  • 相关阅读:
    常见WINDOWS运行命令
    CSDN Blog 之七宗罪
    常见进程大全
    开始→运行→输入的命令集锦(网上搜来的)
    20200527:SpringCloud用了那些组件?分布式追踪链怎么做的?熔断器工作原理?
    20200520:分库分表后如何迁移?
    20200523:如何实现并发限流
    20200521:es底层读写原理?倒排索引原理?
    20200525:MQ应用场景、Kafka和rabbit区别?kafka为什么支撑高并发? 来自
    20200519:催收核心业务是什么?
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12180057.html
Copyright © 2011-2022 走看看