栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Flutter更改导航动画

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Flutter更改导航动画

您可以使用CupertinoPageRoute实现此目的。请检查以下代码。

import 'package:flutter/material.dart';import 'package:flutter/cupertino.dart';void main() => runApp(new MyApp());class MyApp extends StatelessWidget {  @override  Widget build(BuildContext context) {    return new MaterialApp(      title: 'Transition Animation Demo',      theme: new ThemeData(        primarySwatch: Colors.blue,      ),      home: new FirstPage(),    );  }}class FirstPage extends StatefulWidget {  @override  _FirstPageState createState() => new _FirstPageState();}class _FirstPageState extends State<FirstPage> {  @override  Widget build(BuildContext context) {    return new Scaffold(      appBar: new AppBar(        title: new Text('First Page'),      ),      body: new Center(        child: new RaisedButton(          child: new Text('Goto Second Page'),          onPressed: () { Navigator.of(context).push(new SecondPageRoute());          },        ),      ),    );  }}class SecondPageRoute extends CupertinoPageRoute {  SecondPageRoute()      : super(builder: (BuildContext context) => new SecondPage());  // OPTIonAL IF YOU WISH TO HAVE SOME EXTRA ANIMATION WHILE ROUTING  @override  Widget buildPage(BuildContext context, Animation<double> animation,      Animation<double> secondaryAnimation) {    return new FadeTransition(opacity: animation, child: new SecondPage());  }}class SecondPage extends StatefulWidget {  @override  _SecondPageState createState() => new _SecondPageState();}class _SecondPageState extends State<SecondPage> {  @override  Widget build(BuildContext context) {    return new Scaffold(      appBar: new AppBar(        title: new Text('Second Page'),      ),      body: new Center(        child: new Text('This is the second page'),      ),    );  }}

一些动画玩法

  // OPTIonAL IF YOU WISH TO HAVE SOME EXTRA ANIMATION WHILE ROUTING  @override  Widget buildPage(BuildContext context, Animation<double> animation,      Animation<double> secondaryAnimation) {    return new RotationTransition(        turns: animation,        child: new ScaleTransition(          scale: animation,          child: new FadeTransition( opacity: animation, child: new SecondPage(),          ),        ));  }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号