Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:创建添加关闭动画_Flutter_Flutter Animation - Fatal编程技术网

Flutter 颤振:创建添加关闭动画

Flutter 颤振:创建添加关闭动画,flutter,flutter-animation,Flutter,Flutter Animation,我想创建一个作为图标的开始图标。添加和作为图标的结束图标。在AnimatedIcon小部件中关闭。例如,它们是一个预构建的add_event动画,对应于开始动画=add和结束动画=event。我想将结束动画更改为图标。关闭。目前还不清楚如何做到这一点,因为没有现成的文档可用于创建自定义动画。我能找到的最相关的代码是:。我认为我应该使用vitool。我怎样才能开始创作新的动画?所以我有一些空闲时间,这是很多人在某个时候可能想要使用的东西,因为我们没有太多已经提供给我们的动画指令选项。 所以我继续构

我想创建一个作为
图标的开始图标。添加
和作为
图标的结束图标。在
AnimatedIcon
小部件中关闭
。例如,它们是一个预构建的
add_event
动画,对应于开始动画=
add
和结束动画=
event
。我想将结束动画更改为
图标。关闭
。目前还不清楚如何做到这一点,因为没有现成的文档可用于创建自定义动画。我能找到的最相关的代码是:。我认为我应该使用
vitool
。我怎样才能开始创作新的动画?

所以我有一些空闲时间,这是很多人在某个时候可能想要使用的东西,因为我们没有太多已经提供给我们的动画指令选项。 所以我继续构建了这个小软件包,并将其上传到pub-dart上,它可以解决您需要的问题。 使用此软件包,您可以设置任意两个图标的动画

查看酒吧飞镖

只需将包添加到pubspec.yaml中,如下所示:

animate_icons:
AnimateIcons(
    startIcon: Icons.add,
    endIcon: Icons.close,
    size: 60.0,
    onStartIconPress: () {
        print("Clicked on Add Icon");
    },
    onEndIconPress: () {
        print("Clicked on Close Icon");
    },
    duration: Duration(milliseconds: 500),
    color: Theme.of(context).primaryColor,
    clockwise: false,
),
然后像这样使用这个小部件:

animate_icons:
AnimateIcons(
    startIcon: Icons.add,
    endIcon: Icons.close,
    size: 60.0,
    onStartIconPress: () {
        print("Clicked on Add Icon");
    },
    onEndIconPress: () {
        print("Clicked on Close Icon");
    },
    duration: Duration(milliseconds: 500),
    color: Theme.of(context).primaryColor,
    clockwise: false,
),

是的,朋友,您需要创建自己的动画

我已经为您提到的情况编写了代码

我过去常玩widget,而且

import'dart:math';
进口“包装:颤振/材料.省道”;
void main(){
runApp(MyApp());
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类_MyAppState使用SingleTickerProviderStateMixin扩展状态{
动画控制器;
双_角=0;
@凌驾
void initState(){
动画控制器=
AnimationController(vsync:this,duration:duration(毫秒:300));
animatedController.addListener((){
设置状态(){
_角度=animatedController.value*45/360*pi*2;
});
});
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
正文:中(
孩子:InkResponse(
onTap:(){
if(animatedController.status==AnimationStatus.completed)
animatedController.reverse();
else if(animatedController.status==AnimationStatus.discomered)
animatedController.forward();
},
子对象:Transform.rotate(
角度:_角度,
子:图标(
Icons.add,
尺码:50,
),
),
),
)));
}
}
如果您需要定制更多的内容,请查看

如果两个图标之间的距离足够大,那么该软件包可能会很有用

class AnimationButton扩展StatefulWidget{
@凌驾
_AnimateDictionButtonState createState()=>\u AnimateDictionButtonState();
}
类_animateDictionButtonState扩展状态
使用SingleTickerProviderStateMixin{
bool _isopend=false;
AnimationController _AnimationController;
动画"进步",;
@凌驾
void initState(){
super.initState();
_动画控制器=
AnimationController(vsync:this,duration:duration(毫秒:300))
…addListener(){
setState((){});
});
_进展=
Tween(开始:0.0,结束:1.0)。设置动画(_animationController);
}
@凌驾
无效处置(){
_animationController.dispose();
super.dispose();
}
void animate(){
如果(_等间距){
_animationController.reverse();
}否则{
_animationController.forward();
}
设置状态(){
_等间距=!\u等间距;
});
}
@凌驾
小部件构建(构建上下文){
返回图标按钮(
onPressed:设置动画,
图标:SimpleAnimatedIcon(
startIcon:Icons.add,
endIcon:Icons.close,
进展:_进展,
));
}
}

创建一个添加关闭动画图标是什么意思?@mFeinstein我想创建一个开始图标作为
图标。在
AnimatedIcon
小部件中添加
图标的结束图标。关闭
。例如,它们是一个预构建的
add_event
动画,对应于开始动画=
add
和结束动画=
event
。我想将结束动画更改为关闭。好的,明白了,请将此添加到您的问题描述中。vitool似乎不是供公众使用的,它在自述文件中提到:谢谢。我正在寻找要输出的
AnimatedIconData
对象。这就是我没有编写自定义动画的原因。“用你的软件包还可以这样做吗?”@Black抱歉,但我认为这是不可能的。提供给我们的所有动画指令都是定制的动画矢量,如果你只需要它,我想你就必须构建它。我建议的另一种方法是在此处使用Flare构建动画小部件,然后将其集成到应用程序中。但是如果我是你的话,我不会使用动画图标小部件来显示没有提供给我们的动画图标。如果你没有找到任何方法,你仍然可以尝试插件。我相信这会解决这个用例。你为我节省了很多时间。我们待会在酒吧见。