当前位置: 首页 > 编程笔记 >

flutter FadeTransition实现透明度渐变动画

钱渊
2023-03-14
本文向大家介绍flutter FadeTransition实现透明度渐变动画,包括了flutter FadeTransition实现透明度渐变动画的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了flutter实现透明度渐变动画的具体代码,供大家参考,具体内容如下

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 AnimationStatus 动画状态说明

flutter FadeTransition实现透明度渐变动画

//动画控制器
 AnimationController controller; 
 
 controller =
 AnimationController(duration: const Duration(seconds: 2), vsync: this);
 //动画开始、结束、向前移动或向后移动时会调用StatusListener
 controller.addStatusListener((status) {
 if (status == AnimationStatus.completed) {
 //动画从 controller.forward() 正向执行 结束时会回调此方法
 print("status is completed");
 //反向执行
 //controller.reverse();
 } else if (status == AnimationStatus.dismissed) {
 //动画从 controller.reverse() 反向执行 结束时会回调此方法
 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");
 }
 });

执行动画的view

 //渐变动画
 Widget buildSlideTransition() {
 return Center(
 child: FadeTransition(
 opacity: controller,
 //将要执行动画的子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();
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 如图所示,红色圈起来做横向滚动,如何实现容器左右侧的文字透明度效果?

  • 问题内容: RGBA是非常有趣的,所以是,和呃… …是啊。:) 有没有一种方法可以将RGBA和渐变这两者结合起来,以便使用当前/最新的CSS规范可以实现alpha透明度的渐变。 问题答案: 是。您可以在webkit和moz渐变声明中使用rgba: (src) (src) 显然,您甚至可以使用奇怪的“扩展十六进制”语法在IE中执行此操作。第一组(在示例55中)指的是不透明度级别: (src)

  • 本文向大家介绍js实现透明度渐变效果的方法,包括了js实现透明度渐变效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现透明度渐变效果的方法。分享给大家供大家参考。具体分析如下: 这里可实现一开始元素的透明度是30,鼠标移上的时候,透明度慢慢增加,到透明度100停止。鼠标移出,透明度慢慢减少,减少到30的效果。 要点一:因为无法直接获取和改变透明度的值,可以把透明度值赋给一个

  • 本文向大家介绍iOS轻松实现导航栏透明渐变,包括了iOS轻松实现导航栏透明渐变的使用技巧和注意事项,需要的朋友参考一下 首先我们来看下效果 一开始当我们什么只设置了一张图片作为它的头部视图的时候,它是这样的 1.首当其冲的,我们先得把导航栏弄透明 那么我们首先得知道,设置navigationBar的BackgroundColor为Clear是没用的,你可以试着设置它的clear,但是没用,原因一会

  • 问题内容: 指定带有透明度的渐变颜色时,是否可以使用CSS变量,例如 问题答案: 您可以使用变量,但不能从CSS中的单个十六进制值中采样各个红色,绿色和蓝色分量。 如果您只是想将alpha分量应用于现有的RGB三元组,则可以将整个三元组指定为用逗号分隔的十进制值列表,而不是十六进制值,并将其作为单个不透明标记直接替换为函数: 如果要使用来指定和控制各个R,G和B值,则需要为每个颜色分量指定一个变量

  • 我想创建一个模拟光的圆,我需要一个径向梯度。我希望它的中心是黄色的,外侧是透明的。 我试过了,但没有达到预期的效果。