flutter FadeTransition實現(xiàn)透明度漸變動畫
本文實例為大家分享了flutter實現(xiàn)透明度漸變動畫的具體代碼,供大家參考,具體內(nèi)容如下
flutter 動畫狀態(tài)監(jiān)聽器
AnimationController
//動畫控制器
AnimationController controller;
//AnimationController是一個特殊的Animation對象,在屏幕刷新的每一幀,就會生成一個新的值,
// 默認(rèn)情況下,AnimationController在給定的時間段內(nèi)會線性的生成從0.0到1.0的數(shù)字
//用來控制動畫的開始與結(jié)束以及設(shè)置動畫的監(jiān)聽
//vsync參數(shù),存在vsync時會防止屏幕外動畫(動畫的UI不在當(dāng)前屏幕時)消耗不必要的資源
//duration 動畫的時長,這里設(shè)置的 seconds: 2 為2秒,當(dāng)然也可以設(shè)置毫秒 milliseconds:2000.
controller =
AnimationController(duration: const Duration(seconds: 2), vsync: this);
//動畫開始、結(jié)束、向前移動或向后移動時會調(diào)用StatusListener
controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
//動畫從 controller.reverse() 反向執(zhí)行 結(jié)束時會回調(diào)此方法
print("status is completed");
// controller.reset(); 將動畫重置到開始前的狀態(tài)
//開始執(zhí)行
//controller.forward();
} else if (status == AnimationStatus.dismissed) {
//動畫從 controller.forward() 正向執(zhí)行 結(jié)束時會回調(diào)此方法
print("status is dismissed");
//controller.forward();
}else if (status == AnimationStatus.forward) {
print("status is forward");
//執(zhí)行 controller.forward() 會回調(diào)此狀態(tài)
}else if (status == AnimationStatus.reverse) {
//執(zhí)行 controller.reverse() 會回調(diào)此狀態(tài)
print("status is reverse");
}
});
AnimationController 的常用操作說明

flutter AnimationStatus 動畫狀態(tài)說明

flutter FadeTransition實現(xiàn)透明度漸變動畫

//動畫控制器
AnimationController controller;
controller =
AnimationController(duration: const Duration(seconds: 2), vsync: this);
//動畫開始、結(jié)束、向前移動或向后移動時會調(diào)用StatusListener
controller.addStatusListener((status) {
if (status == AnimationStatus.completed) {
//動畫從 controller.forward() 正向執(zhí)行 結(jié)束時會回調(diào)此方法
print("status is completed");
//反向執(zhí)行
//controller.reverse();
} else if (status == AnimationStatus.dismissed) {
//動畫從 controller.reverse() 反向執(zhí)行 結(jié)束時會回調(diào)此方法
print("status is dismissed");
//controller.forward();
} else if (status == AnimationStatus.forward) {
print("status is forward");
//執(zhí)行 controller.forward() 會回調(diào)此狀態(tài)
} else if (status == AnimationStatus.reverse) {
//執(zhí)行 controller.reverse() 會回調(diào)此狀態(tài)
print("status is reverse");
}
});
執(zhí)行動畫的view
//漸變動畫
Widget buildSlideTransition() {
return Center(
child: FadeTransition(
opacity: controller,
//將要執(zhí)行動畫的子view
child: Container(
width: 200,
height: 200,
color: Colors.grey,
child: Image.network(
"http://img5.duitang.com/uploads/item/201411/16/20141116124947_xBNxM.jpeg",
),
),
),
);
}
開始動畫
//動畫開始 controller.forward();
頁面消毀時
@override
void dispose() {
super.dispose();
controller.dispose();
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android ViewPager2 使用及自定義指示器視圖實現(xiàn)
這篇文章主要為大家介紹了Android ViewPager2 使用及自定義指示器視圖實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Android實現(xiàn)給TableLayou繪制邊框的方法
這篇文章主要介紹了Android實現(xiàn)給TableLayou繪制邊框的方法,涉及Android TableLayou布局控制相關(guān)技巧,需要的朋友可以參考下2016-03-03
Android提高之TelephonyManager功能探秘
這篇文章主要介紹了Android的TelephonyManager功能,可以幫助讀者更好的理解Java反射機(jī)制,需要的朋友可以參考下2014-08-08
Android基于OpenCV實現(xiàn)QR二維碼檢測
QR碼比普通一維條碼具有快速讀取和更大的存儲資料容量,也無需要像一維條碼般在掃描時需要直線對準(zhǔn)掃描儀。因此其應(yīng)用范圍已經(jīng)擴(kuò)展到包括產(chǎn)品跟蹤,物品識別,文檔管理,庫存營銷等方面。本文講解Android基于OpenCV實現(xiàn)QR二維碼檢測的步驟2021-06-06
Android自定義View實現(xiàn)loading動畫加載效果
項目開發(fā)中對Loading的處理是比較常見的,安卓系統(tǒng)提供的不太美觀,引入第三發(fā)又太麻煩,這時候自己定義View來實現(xiàn)這個效果。這篇文章主要介紹了Android自定義View實現(xiàn)loading動畫加載效果,需要的朋友可以參考下2017-03-03
Kotlin中空判斷與問號和感嘆號標(biāo)識符使用方法
最近使用kotlin重構(gòu)項目,遇到了一個小問題,在Java中,可能會遇到判斷某個對象是否為空,為空執(zhí)行一段邏輯,不為空執(zhí)行另外一段邏輯,下面這篇文章主要給大家介紹了關(guān)于Kotlin中空判斷與問號和感嘆號標(biāo)識符處理操作的相關(guān)資料,需要的朋友可以參考下2022-12-12

