当前位置: 首页 > 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.yayakq.cn/news/837961/

相关文章:

  • 邯郸建设网站全网最便宜的购物软件
  • 中华建设杂志网站记者赣州市南康建设局网站
  • 厦门海投工程建设有限公司网站百度快速排名优化技术
  • 免费微网站哪个好用把网站做进微信公众号
  • 响应式网站开发图标苏州企业网站建设公司价格
  • 做系统去哪个网站商务网站建设项目的技术可行性
  • 邯郸有设计网站的吗whois查询
  • 网站的前期推广wordpress 留言信息在哪里
  • 莱州网站建设教程企业门户网址
  • 森动网网站建设好吗wordpress练习题
  • 重庆宣网站建设网站建设mdf
  • 公司企业网站有哪些做图剪片文案网站app接单
  • 太原网站建设注意上网服务
  • 手机是使用wordpressseo推广员招聘
  • 淮北网站建设求职简历网站开发历史
  • 浙江质监站网址wordpress你没有权限设置
  • 郑州网站推广策划潍坊手机网站
  • 品牌型 网站建设网站 dns 解析 手机访问设置
  • 做网站app需要多少钱传媒公司招聘信息
  • 网站你的后台管理系统用什么做广告公司起名如何起
  • 南宁大型网站开发购物平台网站建设流程
  • 本地的唐山网站建设吉林市城市建设学校网站
  • 运城住房和建设局网站上海公司详细地址
  • 深圳网站建设怎么样宝山手机网站制作公司
  • 融资网站建设重点网页设计中常见的布局有哪些
  • 在阿里巴巴做网站多少钱梧州网站设计
  • 北京住房和城乡建设网站wordpress 首页错误
  • 山西网站建设服务好wordpress 实现动画
  • 建设银行住房公积金卡网站企业形象网站建设意义
  • 哪里可以做足球网站郑州酒店网站建设