Flutter 路由跳轉(zhuǎn)動(dòng)畫效果

縮放動(dòng)畫.gif
旋轉(zhuǎn)動(dòng)畫.gif
左右動(dòng)畫.gif
漸變動(dòng)畫.gif

main

import 'package:flutter/material.dart';
import 'firstpage.dart';
main(){
  runApp(new MyApp());
}
class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
       title:'Flutter Demo',
      // 自定義主題樣本
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: FirstPage(),
    );
  }
}

firstpage

import 'package:flutter/material.dart';
import 'custom_router.dart';

class FirstPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.blue,
      appBar:AppBar(
        title:Text('FirstPage',style: TextStyle(fontSize: 36.0)),
       // 模式是4.0設(shè)置成0.0是完全和main布局融合
        elevation: 0.0,
      ),
      body:Center(
        child: MaterialButton(
          child: Icon(
            Icons.navigate_next,
            color:Colors.white,
            size:64.0,
          ),
          // 點(diǎn)擊開(kāi)啟路由
          onPressed: (){
                                  // 調(diào)用自定義的路由方法
             Navigator.of(context).push(CustomRoute(SecondPage()));
          },
        ),
      )
    );
  }
}
class SecondPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.pinkAccent,
      appBar: AppBar(
        title: Text('SecondPage',style:TextStyle(fontSize:36.0),),
        backgroundColor: Colors.pinkAccent,
        leading:Container(),
        elevation: 0.0,
      ),
      body:Center(
        child: MaterialButton(
          child: Icon(
            Icons.navigate_before,
            color:Colors.white,
            size:64.0
          ),
          onPressed: ()=>Navigator.of(context).pop(),
        ),
      )
    );
  }
}

自定義的custom_router

import 'package:flutter/material.dart';
class CustomRoute extends PageRouteBuilder{
  final Widget widget;

  CustomRoute(this.widget)
  :super(
    // 設(shè)置過(guò)度時(shí)間
    transitionDuration:Duration(seconds: 1),
    // 構(gòu)造器
    pageBuilder:(
      // 上下文和動(dòng)畫
      BuildContext context,
      Animation<double> animaton1,
      Animation<double> animaton2,
    ){
      return widget;
    },
    transitionsBuilder:(
      BuildContext context,
      Animation<double> animaton1,
      Animation<double> animaton2,
      Widget child,
    ){
    
    // 需要什么效果把注釋打開(kāi)就行了
      // 漸變效果
      return FadeTransition(
        // 從0開(kāi)始到1
        opacity: Tween(begin: 0.0,end: 1.0)
        .animate(CurvedAnimation(
          // 傳入設(shè)置的動(dòng)畫
          parent: animaton1,
          // 設(shè)置效果凰浮,快進(jìn)漫出   這里有很多內(nèi)置的效果
          curve: Curves.fastOutSlowIn,
        )),
        child: child,
      );
      
      // 縮放動(dòng)畫效果
      // return ScaleTransition(
      //   scale: Tween(begin: 0.0,end: 1.0).animate(CurvedAnimation(
      //     parent: animaton1,
      //     curve: Curves.fastOutSlowIn
      //   )),
      //   child: child,
      // );

      // 旋轉(zhuǎn)加縮放動(dòng)畫效果
      // return RotationTransition(
      //   turns: Tween(begin: 0.0,end: 1.0)
      //   .animate(CurvedAnimation(
      //     parent: animaton1,
      //     curve: Curves.fastOutSlowIn,
      //   )),
      //   child: ScaleTransition(
      //     scale: Tween(begin: 0.0,end: 1.0)
      //     .animate(CurvedAnimation(
      //       parent: animaton1,
      //       curve: Curves.fastOutSlowIn
      //     )),
      //     child: child,
      //   ),
      // );

      // 左右滑動(dòng)動(dòng)畫效果
      // return SlideTransition(
      //   position: Tween<Offset>(
      //     // 設(shè)置滑動(dòng)的 X , Y 軸
      //     begin: Offset(-1.0, 0.0),
      //     end: Offset(0.0,0.0)
      //   ).animate(CurvedAnimation(
      //     parent: animaton1,
      //     curve: Curves.fastOutSlowIn
      //   )),
      //   child: child,
      // );
    }
  );
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末农渊,一起剝皮案震驚了整個(gè)濱河市谓着,隨后出現(xiàn)的幾起案子渡讼,更是在濱河造成了極大的恐慌绪商,老刑警劉巖苛谷,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異格郁,居然都是意外死亡腹殿,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門例书,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)锣尉,“玉大人,你說(shuō)我怎么就攤上這事决采∽圆祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)拇厢。 經(jīng)常有香客問(wèn)我爱谁,道長(zhǎng),這世上最難降的妖魔是什么孝偎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任访敌,我火速辦了婚禮,結(jié)果婚禮上衣盾,老公的妹妹穿的比我還像新娘寺旺。我一直安慰自己,他們只是感情好势决,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布阻塑。 她就那樣靜靜地躺著,像睡著了一般徽龟。 火紅的嫁衣襯著肌膚如雪叮姑。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天据悔,我揣著相機(jī)與錄音传透,去河邊找鬼。 笑死极颓,一個(gè)胖子當(dāng)著我的面吹牛朱盐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菠隆,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兵琳,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了骇径?” 一聲冷哼從身側(cè)響起躯肌,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎破衔,沒(méi)想到半個(gè)月后清女,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晰筛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年嫡丙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片读第。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡曙博,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怜瞒,到底是詐尸還是另有隱情父泳,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站惠窄,受9級(jí)特大地震影響逝她,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜睬捶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一黔宛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擒贸,春花似錦臀晃、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)嘱能。三九已至翘紊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間色建,已是汗流浹背誉碴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工宦棺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人黔帕。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓代咸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親成黄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呐芥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容