- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我目前有这段代码,它工作得很好。
它控制一个计时器,当它达到零时,它将改变模式,从EATING -> FASTING -> READY
。
但是,如果用户转到另一条路线(使用 Navigator.push
),模式将不会切换,直到用户返回带有计时器的页面。解决此问题的最佳方法是什么?
controller = AnimationController(vsync: this, duration: Duration(seconds: 10));
//...
最佳答案
这里的问题是标准的 TickerProvider
,即 State
混合宏,您可能正在使用 with SingleTickerProviderStateMixin
混合它.
当您在另一条 route 时,该行情提供者实际上执行了一项非常重要的操作,即静音行情。
话虽如此,您显然想避免这种行为,这可以通过创建自己的 TickerProvider
来实现,类似于 TestVSync
的方式。可以。
为此,我创建了一个简单的 mixin
称为 NonStopTickerProviderMixin
:
import 'package:flutter/scheduler.dart';
mixin NonStopTickerProviderMixin implements TickerProvider {
@override
Ticker createTicker(TickerCallback onTick) => Ticker(onTick);
}
如果你想使用它,将 with NonStopTickerProviderMixin
添加到你的 State
而不是 SingleTickerProviderStateMixin
就可以了。
完整的工作代码 as a Gist .
将我创建的类作为 mixin
并没有什么意义。它实际上应该是 class
并且它与 with
关键字一起工作得很好,但是,我希望它能替代 (Single)TickerProviderStateMixin
。 .
用于 State
的原始代码提供程序实现是 mixin
的原因很简单,因为它使用了 didChangeDependencies
和 dispose
来自 State
的方法,首先,执行 Ticker
的静音,其次,添加一些安全断言。
如果你想添加它们,你可以从我链接的源代码中复制它们并将 on State
添加到你的 mixin
(但不要添加 muting 部分,因为这正是您要避免的部分)。
关于flutter - 我如何确保即使在另一条 route 也会调用 AnimationController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57208456/
每次双击图像时,我都会尝试启动动画。我的代码适用于第一个双标签,但由于某种原因停止适用于下一个双标签。我的代码如下所示:` child: new GestureDetector( onDoubl
我使用AnimationController制作了动画,我希望它在用户打开应用程序时开始,并且当动画结束时,用户无需按任何按钮即可转到另一页。 最佳答案 在StatefulWidget子类中使用此代码
我找不到两者之间的区别,以及为什么您想要使用其中一个。 在我看来,他们俩几乎做了同样的事情。 为什么以及在哪里会使用其中一个? 最佳答案 AnimatedContainer 用于快速完成任务且用途简单
我有一个 View Controller ,带有使用 UINavigationControllerDelegate 的自定义导航推送转换。当您启动动画、按下后退按钮等时,一切都完美无缺。 但是,如果您
使用时 AnimationController ,那vsync的目的是什么?范围? class Example extends StatefulWidget { @override _Exam
不确定为什么这不起作用,它会抛出错误 RangeError (index): Invalid value: Valid value range is empty: 0 class _HomePageS
我想从我的小部件参数设置动画持续时间,但是它不起作用,因为持续时间要用一个常量初始化 class CircularTimer extends StatefulWidget { CircularTi
AnimationController 停止工作,因为不知何故 vsync 不再是命名参数。 这行代码停止工作。controller = AnimationController(duration: D
这里是 Flutter 新手。我将 Tween 与 AnimationController 一起使用。我正在尝试将 animateTo() 方法与 Offset 类型的目标一起使用。这可能吗? 文档说
我目前有这段代码,它工作得很好。 它控制一个计时器,当它达到零时,它将改变模式,从EATING -> FASTING -> READY。 但是,如果用户转到另一条路线(使用 Navigator.pus
我正在构建一个带有多张卡片的屏幕,在点击其中一张卡片时,卡片应该翻转。我使用带有 Tweens 和 AnimatedBuilder 的 AnimatedController 对卡片进行动画处理没有问题
我有星星 png 图片,我需要使用 Flutter AnimationController 和 Transformer 旋转星星。我找不到图像旋转动画的任何文档或示例。 知道如何使用 Flutter
我是 Flutter 新手。 所以我尝试在 flutter 中使用 Curved 动画,但它给了我标题中提到的类型错误。我在下面分享了我的 main.dart 和 welcome_screen.dar
我有一个 initState()方法并包含 AnimationController如以下代码: _controller = AnimationController( vsync: this
我正在使用 UIModalPresentationStyle.custom。 在我的 UIViewControllerTransitioningDelegate 中,为什么会调用此方法: func p
我是一名优秀的程序员,十分优秀!