全局减慢 Flutter 中的动画
Posted
技术标签:
【中文标题】全局减慢 Flutter 中的动画【英文标题】:Slowing down animations in Flutter globally 【发布时间】:2018-12-09 12:55:59 【问题描述】:Flutter框架中有一个函数或方法,可以用来调整每个widget的动画/运行速度。
这可能使用我认为的服务。
我只是忘记了如何称呼它,找不到任何描述它的资源 + 我不知道我曾经在哪里发现它。
没有真正的更多信息提供,因为这只是一个简单的一个班轮。我希望有人知道我在说什么。
【问题讨论】:
你是指flutter Gallery应用中的慢速motion option吗? @RaoufRahiche 如果我知道它,我可以查看那个来源 :) 我想说我知道timeDilation
一段时间前,但忘记了包和属性名称:)跨度>
我们可以使用timeDilation属性来控制Droggable不被DropTarget接受时的反馈吗?
【参考方案1】:
您需要设置timeDilation
静态属性:
import 'package:flutter/scheduler.dart' show timeDilation;
// you can also import the whole file:
// import 'package:flutter/scheduler.dart';
...
timeDilation = 2.0; // Will slow down animations by a factor of two
我在 import
中使用 show
,因为它限制了对库中某些声明的导入。
在这种情况下,我只希望能够使用 scheduler.dart
库 中的timeDilation
,仅此而已。由于调度程序是相当低级的东西,所以不污染命名空间是有意义的。还有 hide
有相反的效果(只隐藏某些声明)。
您可以在应用中的任何位置进行设置,甚至在主函数中:
import 'package:flutter/scheduler.dart' show timeDilation;
void main()
timeDilation = 3.0;
runApp(new MyApp());
或在您按下的处理程序中:
onPressed: () => timeDilation = 2.0
这是一个全局静态属性,因此您无需调用 setState
即可进行更改。
【讨论】:
> 很明显 setState 不需要被调用——也许对你来说,不是对每个人; > 动画与状态无关——动画与状态有关,调度不是,不是吗? > 我认为 onPressed 是一个奇怪的补充。也许删除它 - 对不起,我的答案包含更多信息,而不仅仅是来自 'package:flutter/scheduler.dart'. I think an example is useful for people looking for information about time dilation in general. Why is it too much and explaining
show` 的 timeDilation
不是吗?
对不起,我没有消极的意思。我只是认为有些部分很奇怪,例如onPressed
完全断章取义,我仍然不知道 show
在你的代码中做了什么:) 你问到调度问题,是的,这当然是我想说的,因为这是动画的一部分动画。现在给你一个赞成票,但我仍然想知道show
做了什么:) 我不想让你解释show
的概念,最好解释一下你为什么选择包含它(我是认真的如果你知道它的作用就很明显了)。
对不起,如果我也公开否定,我只是想让答案更容易获得。至于show
,它将导入限制为从库中的某些声明——在这种情况下,我只想能够使用scheduler.dart
库中的timeDilation
,仅此而已。由于调度程序是非常低级的东西,因此不污染命名空间是有意义的。还有hide
,效果相反(只隐藏某些声明)以上是关于全局减慢 Flutter 中的动画的主要内容,如果未能解决你的问题,请参考以下文章