欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter利用SizeTransition實(shí)現(xiàn)組件飛入效果

 更新時(shí)間:2022年04月13日 08:50:19   作者:島上碼農(nóng)  
本文將為大家介紹SizeTransition,SizeTransition用于更改子組件的尺寸來(lái)實(shí)現(xiàn)動(dòng)畫,支持垂直方向或水平方向修改動(dòng)畫。本文將利用其實(shí)現(xiàn)組件飛入效果,需要的可以參考一下

前言

繼續(xù) Transition 系列動(dòng)畫組件的介紹,本篇來(lái)介紹 SizeTransition。SizeTransition 用于更改子組件的尺寸來(lái)實(shí)現(xiàn)動(dòng)畫。支持垂直方向或水平方向修改動(dòng)畫,同時(shí)尺寸更改的起始位置可以從頂部、中部、底部(垂直方向)或左側(cè)、中間、右側(cè)(水平方向)開始。通過(guò)這些特性,我們可以構(gòu)建組件飛入的效果。

SizeTransition 介紹

SizeTransition 的構(gòu)造方法定義如下。

const?SizeTransition({
??Key??key,
??this.axis?=?Axis.vertical,
??required?Animation<double>?sizeFactor,
??this.axisAlignment?=?0.0,
??this.child,
})?

參數(shù)對(duì)應(yīng)的說(shuō)明如下:

axis:枚舉,vertical 標(biāo)識(shí)縱向更改組件尺寸,即更改組件高度;horizontal 表示橫向更改組件尺寸,即更改組件寬度。

sizeFactor:即控制組件尺寸變化的 Animation 對(duì)象。實(shí)際上在動(dòng)畫過(guò)程中就是組件尺寸的寬度(horizontal)或高度(vertical)乘以**Animation**的值。

axisAlignment:即動(dòng)畫過(guò)程中,子組件的對(duì)齊位置,默認(rèn)為0.0,是從中間開始更改尺寸;當(dāng)axisvertical時(shí),-1.0代表頂部對(duì)齊開始動(dòng)畫(即尺寸從上到下開始變大);當(dāng) axis 為horizontal 時(shí),開始的方向和文本的反向有關(guān)(TextDirection.ltr 還是 TextDirection.rtl),當(dāng)文本為從左到右時(shí)(TextDirection.ltr,默認(rèn)),-1.0表示從左側(cè)開始動(dòng)畫(即尺寸從左到右開始變大)。

應(yīng)用

對(duì)于我們的飛入動(dòng)畫來(lái)說(shuō),我們要實(shí)現(xiàn)從左向右飛入動(dòng)畫效果,因此需要設(shè)置 axis 為水平方向,然后 axisAligment 為右側(cè)。對(duì)于圖片,找一個(gè)橫向飛行的超人,然后加上動(dòng)畫后就可以實(shí)現(xiàn)超人飛入的效果了。完整源碼如下:

class?SizeTransitionDemo?extends?StatefulWidget?{
??SizeTransitionDemo({Key??key})?:?super(key:?key);

??@override
??_SizeTransitionDemoState?createState()?=>?_SizeTransitionDemoState();
}

class?_SizeTransitionDemoState?extends?State<SizeTransitionDemo>
????with?SingleTickerProviderStateMixin?{
??late?AnimationController?_controller?=
??????AnimationController(duration:?const?Duration(seconds:?3),?vsync:?this)
????????..repeat();

??//使用自定義曲線動(dòng)畫過(guò)渡效果
??late?Animation<double>?_animation?=?CurvedAnimation(
??????parent:?_controller,?curve:?Curves.fastLinearToSlowEaseIn);

??@override
??Widget?build(BuildContext?context)?{
????return?Scaffold(
??????appBar:?AppBar(
????????title:?Text('SizeTransition'),
????????brightness:?Brightness.dark,
????????backgroundColor:?Colors.blue,
??????),
??????body:?SizeTransition(
????????child:?Center(
??????????child:?Image.asset(
????????????'images/superman.png',
????????????width:?300.0,
????????????height:?300.0,
??????????),
????????),
????????sizeFactor:?_animation,
????????axis:?Axis.horizontal,
????????axisAlignment:?1.0,
??????),
????);
??}

??@override
??void?dispose()?{
????_controller.stop();
????_controller.dispose();
????super.dispose();
??}
}

使用 SizeTransition 實(shí)現(xiàn)其他動(dòng)畫效果

我們可以設(shè)置動(dòng)畫從中間開始,這樣會(huì)有一種卷軸打開的效果,比如我們找一幅卷軸畫來(lái)看看效果。

這個(gè)動(dòng)畫的實(shí)現(xiàn)代碼如下:

Widget?build(BuildContext?context)?{
??return?Scaffold(
????appBar:?AppBar(
??????title:?Text('SizeTransition'),
??????brightness:?Brightness.dark,
??????backgroundColor:?Colors.blue,
????),
????body:?Container(
??????alignment:?Alignment.center,
??????child:?SizeTransition(
????????child:?Image.asset(
??????????'images/juanzhou.png',
????????),
????????sizeFactor:?_animation,
????????axis:?Axis.horizontal,
????????axisAlignment:?0.0,
??????),
????),
??);
}

總結(jié)

本篇介紹了使用 SizeTransition 控制組件尺寸更改來(lái)實(shí)現(xiàn)飛入或展開的動(dòng)畫效果。SizeTransition 也可以用于那種滑入滑出的動(dòng)畫場(chǎng)合,比如列表元素的插入使用下滑入,列表元素的刪除使用上滑出。

以上就是Flutter利用SizeTransition實(shí)現(xiàn)組件飛入效果的詳細(xì)內(nèi)容,更多關(guān)于Flutter組件飛入的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android截屏保存png圖片的實(shí)例代碼

    Android截屏保存png圖片的實(shí)例代碼

    這篇文章主要介紹了Android截屏保存png圖片的小例子,可以在應(yīng)用提供這個(gè)小功能,很實(shí)用的
    2013-11-11
  • 你用不慣 RxJava,只因缺了這把鑰匙(推薦)

    你用不慣 RxJava,只因缺了這把鑰匙(推薦)

    這篇文章主要介紹了RxJava操作符,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android基于OpenCV實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)

    Android基于OpenCV實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)

    角點(diǎn)就是極值點(diǎn),即在某方面屬性特別突出的點(diǎn)。當(dāng)然,你可以自己定義角點(diǎn)的屬性(設(shè)置特定熵值進(jìn)行角點(diǎn)檢測(cè))。角點(diǎn)可以是兩條線的交叉處,也可以是位于相鄰的兩個(gè)主要方向不同的事物上的點(diǎn)。本文介紹如何基于OpenCV實(shí)現(xiàn)Harris角點(diǎn)檢測(cè)
    2021-06-06
  • Android實(shí)現(xiàn)朋友圈評(píng)論回復(fù)列表

    Android實(shí)現(xiàn)朋友圈評(píng)論回復(fù)列表

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)朋友圈評(píng)論回復(fù)列表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Android實(shí)現(xiàn)選擇相冊(cè)圖片并顯示功能

    Android實(shí)現(xiàn)選擇相冊(cè)圖片并顯示功能

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)選擇相冊(cè)圖片并顯示功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • android獲取當(dāng)前運(yùn)行Activity名字的方法

    android獲取當(dāng)前運(yùn)行Activity名字的方法

    這篇文章主要介紹了android獲取當(dāng)前運(yùn)行Activity名字的方法,對(duì)比分析了兩種實(shí)現(xiàn)方法供大家選擇,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • Flutter路由的幾種用法小結(jié)

    Flutter路由的幾種用法小結(jié)

    這篇文章主要介紹了Flutter路由的幾種用法,包括基本路由跳轉(zhuǎn)和路由跳轉(zhuǎn)傳參方法,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 怎樣實(shí)現(xiàn)android http-post方法實(shí)例說(shuō)明

    怎樣實(shí)現(xiàn)android http-post方法實(shí)例說(shuō)明

    android http-post方法在開發(fā)中如何實(shí)現(xiàn),具體代碼如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助
    2013-06-06
  • Android ListView position詳解及實(shí)例代碼

    Android ListView position詳解及實(shí)例代碼

    這篇文章主要介紹了Android ListView position的相關(guān)資料,在開發(fā)Android 應(yīng)用的時(shí)候你真的用對(duì)了嗎?這里給大家徹底解釋下,需要的朋友可以參考下
    2016-10-10
  • Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用

    Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用

    這篇文章主要介紹了Android 序列化的存儲(chǔ)和讀取總結(jié)及簡(jiǎn)單使用的相關(guān)資料,Serializable接口和Parcelable接口,本文對(duì)這兩種方式進(jìn)行簡(jiǎn)單的總結(jié)和使用,需要的朋友可以參考下
    2016-12-12

最新評(píng)論