溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫

發(fā)布時(shí)間:2022-05-17 09:14:06 來源:億速云 閱讀:279 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

    使用插件探索不同的轉(zhuǎn)換

    步驟 1: 在 pubspec.yaml 中添加頁面動(dòng)畫轉(zhuǎn)換

    page_animation_transition

    Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫

    步驟 2: 在 PageOne 上導(dǎo)入庫

    假設(shè)您正在從 PageOne 過渡到 PageTwo

    以下是圖書館支持的動(dòng)畫類型:

    BottomToTopTransition   TopToBottomTransition  底到上轉(zhuǎn)換到底轉(zhuǎn)換

    RightToLeftTransition 右轉(zhuǎn)移

    LeftToRightTransition 左/右轉(zhuǎn)變

    FadeAnimationTransition 淡化動(dòng)畫/轉(zhuǎn)換

    ScaleAnimationTransition 標(biāo)量動(dòng)畫/轉(zhuǎn)換

    RotationAnimationTransition 轉(zhuǎn)動(dòng)/動(dòng)畫/轉(zhuǎn)變

    TopToBottomFadedTransition 上到下到過渡

    BottomToTopFadedTransition 底部/上部/下部/上部/下部/上部/下部/上部/下部/上部/下部/上部/

    RightToLeftFadedTransition 右轉(zhuǎn)到/ftfaded/transition

    LeftToRightFadedTransition 左/右/插入/轉(zhuǎn)換

    步驟3.添加以下導(dǎo)航代碼行
    Navigator.of(context).push(PageAnimationTransition(page: const PageTwo(), pageAnimationType: BottomToTopTransition()));

    對(duì)于預(yù)定義的路由:

    onGenerateRoute: (settings) {
        switch (settings.name) {
          case '/pageTwo':
            return PageAnimationTransition(child: PageTwo(), pageAnimationType: LeftToRightFadedTransition());
            break;
          default:
            return null;
        }
      }

    Navigator.pushNamed(context, '/pageTwo');

    Pushnamed (context,’/pageTwo’) ;

    Output:

    輸出:

    Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫

    其他類型轉(zhuǎn)換的完整代碼:

    import 'package:page_animation_transition/animations/bottom_to_top_faded_transition.dart';
    import 'package:page_animation_transition/animations/bottom_to_top_transition.dart';
    import 'package:page_animation_transition/animations/fade_animation_transition.dart';
    import 'package:page_animation_transition/animations/left_to_right_faded_transition.dart';
    import 'package:page_animation_transition/animations/left_to_right_transition.dart';
    import 'package:page_animation_transition/animations/right_to_left_faded_transition.dart';
    import 'package:page_animation_transition/animations/right_to_left_transition.dart';
    import 'package:page_animation_transition/animations/rotate_animation_transition.dart';
    import 'package:page_animation_transition/animations/scale_animation_transition.dart';
    import 'package:page_animation_transition/animations/top_to_bottom_faded.dart';
    import 'package:page_animation_transition/animations/top_to_bottom_transition.dart';
    import 'package:page_animation_transition/page_animation_transition.dart';
    import 'page_two.dart';
    import 'package:flutter/material.dart';class PageOne extends StatelessWidget {
      const PageOne({Key? key}) : super(key: key);[@override](http://twitter.com/override)
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Page Animation Transition'),
            centerTitle: true,
          ),
          body: SizedBox(
            width: MediaQuery.of(context).size.width,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: BottomToTopTransition()));
                    },
                    child: const Text('Bottom To Top')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: TopToBottomTransition()));
                    },
                    child: const Text('Top to bottom')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: RightToLeftTransition()));
                    },
                    child: const Text('Right To Left')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: LeftToRightTransition()));
                    },
                    child: const Text('Left to Right')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: FadeAnimationTransition()));
                    },
                    child: const Text('Faded')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: ScaleAnimationTransition()));
                    },
                    child: const Text('Scale')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: RotationAnimationTransition()));
                    },
                    child: const Text('Rotate')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: TopToBottomFadedTransition()));
                    },
                    child: const Text('Top to Bottom Faded')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: BottomToTopFadedTransition()));
                    },
                    child: const Text('Bottom to Top Faded')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: RightToLeftFadedTransition()));
                    },
                    child: const Text('Right to Left Faded')),
                ElevatedButton(
                    onPressed: () {
                      Navigator.of(context).push(PageAnimationTransition(
                          page: const PageTwo(),
                          pageAnimationType: LeftToRightFadedTransition()));
                    },
                    child: const Text('Left to Right Faded')),
              ],
            ),
          ),
        );
      }
    }

    輸出:

    Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫

    “Flutter怎么實(shí)現(xiàn)添加頁面過渡動(dòng)畫”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI