91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用flutter RotationTransition怎么實現一個旋轉動畫

發布時間:2021-02-22 17:41:08 來源:億速云 閱讀:352 作者:戴恩恩 欄目:移動開發

這篇文章主要介紹了使用flutter RotationTransition怎么實現一個旋轉動畫,此處給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:

flutter 動畫狀態監聽器

AnimationController

 //動畫控制器
  AnimationController controller;
 //AnimationController是一個特殊的Animation對象,在屏幕刷新的每一幀,就會生成一個新的值,
 // 默認情況下,AnimationController在給定的時間段內會線性的生成從0.0到1.0的數字
 //用來控制動畫的開始與結束以及設置動畫的監聽
 //vsync參數,存在vsync時會防止屏幕外動畫(動畫的UI不在當前屏幕時)消耗不必要的資源
 //duration 動畫的時長,這里設置的 seconds: 2 為2秒,當然也可以設置毫秒 milliseconds:2000.
 controller =
  AnimationController(duration: const Duration(seconds: 2), vsync: this);
 //動畫開始、結束、向前移動或向后移動時會調用StatusListener
 controller.addStatusListener((status) {
  if (status == AnimationStatus.completed) {
  //動畫從 controller.reverse() 反向執行 結束時會回調此方法
  print("status is completed");
  // controller.reset(); 將動畫重置到開始前的狀態
  //開始執行
  //controller.forward();
  } else if (status == AnimationStatus.dismissed) {
  //動畫從 controller.forward() 正向執行 結束時會回調此方法
  print("status is dismissed");
  //controller.forward();
  }else if (status == AnimationStatus.forward) {
  print("status is forward");
  //執行 controller.forward() 會回調此狀態
  }else if (status == AnimationStatus.reverse) {
  //執行 controller.reverse() 會回調此狀態
  print("status is reverse");
  }
 });

AnimationController 的常用操作說明

使用flutter RotationTransition怎么實現一個旋轉動畫

flutter AnimationStatus 動畫狀態說明

使用flutter RotationTransition怎么實現一個旋轉動畫

1 flutter RotationTransition實現旋轉動畫

使用flutter RotationTransition怎么實現一個旋轉動畫

 //動畫控制器
 AnimationController controller;


 //AnimationController是一個特殊的Animation對象,在屏幕刷新的每一幀,就會生成一個新的值,
 // 默認情況下,AnimationController在給定的時間段內會線性的生成從0.0到1.0的數字
 //用來控制動畫的開始與結束以及設置動畫的監聽
 //vsync參數,存在vsync時會防止屏幕外動畫(動畫的UI不在當前屏幕時)消耗不必要的資源
 //duration 動畫的時長,這里設置的 seconds: 2 為2秒,當然也可以設置毫秒 milliseconds:2000.
 controller =
  AnimationController(duration: const Duration(seconds: 2), vsync: this);
 //動畫開始、結束、向前移動或向后移動時會調用StatusListener
 controller.addStatusListener((status) {
  if (status == AnimationStatus.completed) {
  //動畫從 controller.forward() 正向執行 結束時會回調此方法
  print("status is completed");
  } else if (status == AnimationStatus.dismissed) {
  //動畫從 controller.reverse() 反向執行 結束時會回調此方法
  print("status is dismissed");
  } else if (status == AnimationStatus.forward) {
  print("status is forward");
  //執行 controller.forward() 會回調此狀態
  } else if (status == AnimationStatus.reverse) {
  //執行 controller.reverse() 會回調此狀態
  print("status is reverse");
  }
 });

執行動畫的 widget

 //旋轉
 Widget buildRotationTransition() {
 return Center(
  child: RotationTransition(
  //設置動畫的旋轉中心
  alignment: Alignment.center,
  //動畫控制器
  turns: controller,
  //將要執行動畫的子view
  child: Container(
   width: 100,
   height: 100,
   color: Colors.grey,
  ),
  ),
 );
 }
}

2 flutter RotationTransition實現無限循環旋轉動畫

使用flutter RotationTransition怎么實現一個旋轉動畫

實現方法 就是在動畫結束的時候再開啟動畫

//動畫開始、結束、向前移動或向后移動時會調用StatusListener
 controller.addStatusListener((status) {
  if (status == AnimationStatus.completed) {
  //動畫從 controller.forward() 正向執行 結束時會回調此方法
  print("status is completed");
  //重置起點
  controller.reset();
  //開啟
  controller.forward();
  } else if (status == AnimationStatus.dismissed) {
  //動畫從 controller.reverse() 反向執行 結束時會回調此方法
  print("status is dismissed");
  } else if (status == AnimationStatus.forward) {
  print("status is forward");
  //執行 controller.forward() 會回調此狀態
  } else if (status == AnimationStatus.reverse) {
  //執行 controller.reverse() 會回調此狀態
  print("status is reverse");
  }
 });

到此這篇關于使用flutter RotationTransition怎么實現一個旋轉動畫的文章就介紹到這了,更多相關的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明溪县| 鞍山市| 青浦区| 巢湖市| 筠连县| 兴文县| 新余市| 太仓市| 固原市| 方城县| 乡宁县| 连云港市| 包头市| 景东| 浦县| 滦南县| 什邡市| 同仁县| 定陶县| 科技| 邮箱| 乌审旗| 建德市| 长海县| 郓城县| 灵丘县| 观塘区| 唐海县| 迁西县| 博白县| 日喀则市| 南涧| 定南县| 察哈| 武宣县| 池州市| 苗栗市| 余庆县| 玛纳斯县| 连州市| 大方县|