当前位置: 首页 > news >正文

建筑网站的特点上海短视频推广

建筑网站的特点,上海短视频推广,政府网站什么程序做的,网站克隆好后该怎么做flutter开发实战-实现左右来回移动的按钮引导动画效果 最近开发过程中需要实现左右来回移动的按钮引导动画效果 一、动画 AnimationController用来控制一个或者多个动画的正向、反向、停止等相关动画操作。在默认情况下AnimationController是按照线性进行动画播放的。Animati…

flutter开发实战-实现左右来回移动的按钮引导动画效果

最近开发过程中需要实现左右来回移动的按钮引导动画效果

在这里插入图片描述

一、动画

AnimationController用来控制一个或者多个动画的正向、反向、停止等相关动画操作。在默认情况下AnimationController是按照线性进行动画播放的。AnimationController两个监听Listener如下

  • addListener
    addListener();它可以用于给Animation添加帧监听器,在每一帧都会被调用。帧监听器中最常见的行为是改变状态后调用setState()来触发UI重建。

  • addStatusListener
    addStatusListener();它可以给Animation添加“动画状态改变”监听器;动画开始、结束、正向或反向(见AnimationStatus定义)时会调用状态改变的监听器。

二、实现左右来回移动的按钮引导动画效果

在使用动画时候需要TickerProviderStateMixin或者SingleTickerProviderStateMixin
当需要多个Animation,则使用TickerProviderStateMixin

注意:在使用AnimationController的时候需要结合TickerProvider,因为只有在TickerProvider下才能配置AnimationController中的构造参数vsync。TickerProvider是一个抽象类,所以我们一般使用它的实现类TickerProviderStateMixin和SingleTickerProviderStateMixin。

实现左右来回移动的按钮引导动画效果代码效果

import 'package:flutter/material.dart';class ShakeContainer extends StatefulWidget {const ShakeContainer({required this.child, Key? key}) : super(key: key);final Widget child;@override_ShakeContainerState createState() => _ShakeContainerState();
}class _ShakeContainerState extends State<ShakeContainer>with SingleTickerProviderStateMixin {late AnimationController _animationController;late Animation<double> _animation;@overridevoid initState() {// TODO: implement initStatesuper.initState();_animationController =AnimationController(vsync: this, duration: Duration(milliseconds: 600));//使用弹性曲线_animation =CurvedAnimation(parent: _animationController, curve: Curves.easeOut);_animation = Tween(begin: 0.0, end: 1.0).animate(_animation);_animationController.addListener(() {if (mounted) {setState(() {});}});_animationController.addStatusListener((status) {if (status == AnimationStatus.completed) {_animationController.reverse();} else if (status == AnimationStatus.dismissed) {_animationController.forward();}});_animationController.forward();}void animationDispose() {_animationController.dispose();}@overridevoid dispose() {// TODO: implement disposeanimationDispose();super.dispose();}@overrideWidget build(BuildContext context) {return Container(alignment: Alignment.center,child: Transform(///构建Matrix4transform: buildMatrix4(),///中心对齐alignment: Alignment.center,child: widget.child,),);}Matrix4 buildMatrix4() {double dx = 0;double dy = 0;///x轴方向平移dx = _animation.value * 60;return Matrix4.translationValues(dx, dy, 0);}
}/// 左右摆动的心
class HeartItem extends StatelessWidget {const HeartItem({Key? key}): super(key: key);@overrideWidget build(BuildContext context) {return Container(width: 200.0,height: 150.0,alignment: Alignment.center,child: Image.asset("assets/images/touch_here.png",width: 200.0,height: 150,),);}
}

在代码中用到了Matrix4.translationValues(dx, dy, 0); 可以在指定的x、或者y轴方向平移。

在这里插入图片描述

三、小结

flutter开发实战-实现左右来回移动的按钮引导动画效果。
学习记录,每天不停进步。

http://www.dt0577.cn/news/1258.html

相关文章:

  • 做卡盟开端网站要多少钱如何创建自己的域名
  • 嘉兴seo网站建设费用企业seo如何优化
  • 高品质网站建设简述什么是网络营销
  • 深圳俄语网站建设网络营销渠道的特点
  • wordpress自定义字段分类怎么做网站优化排名
  • 网站设计十大品牌百度指数搜索热度大学
  • 沧州网站建设网站友情链接
  • java网站开发通用框架百度竞价排名价格查询
  • 临安区建设局网站短视频推广渠道有哪些
  • 开网店亏了的真实案例哈尔滨企业网站seo
  • 沙田镇仿做网站百度推广下载
  • 做项目管理的网站链接购买平台
  • 网站模块插件是怎么做的百度中心
  • 网站设计尺寸规范seo 页面
  • 网站制作应该选什么沧州seo公司
  • 手机网站比例尺寸旺道seo优化
  • 广州做网站企业谷歌排名算法
  • 2016个人网站备案四川专业网络推广
  • 西安那里做网站昆山网站制作公司
  • 上海网站哪家好南宁百度seo软件
  • 广州做网站建设的公司哪家好seo推广学院
  • 运城网站建设公司有多少网站注册账号
  • 珠海做公司网站的杭州网站设计公司
  • 注册功能网站建设培训网站建设
  • 做的好的购物网站最优化方法
  • 宜城做网站网站优化快速排名软件
  • 资源付费网站制作威海seo公司
  • 域名备案不是网站公司做的百度贴吧网页版登录入口
  • 如何把自己做的网站分享给别人用百度下载老版本
  • 自己做的网站怎么挂广告seo网络推广知识