- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个带有多张卡片的屏幕,在点击其中一张卡片时,卡片应该翻转。我使用带有 Tweens 和 AnimatedBuilder 的 AnimatedController 对卡片进行动画处理没有问题。我的问题是在我的所有“卡片”小部件中重用/应用相同的 AnimatedController 的最佳方法是什么,而不必创建多个 AnimatedControllers 和 Tweens 并将其设置为每张卡片,但仍然允许我单独为它们设置动画。
最佳答案
最后这就是我所做的。我创建了一个 Stateful Widget 作为 Card 小部件,并在 Card 小部件中声明了 AnimatedController。然后我在 Card 小部件中创建了一个方法来使用其 AnimatedController 控制动画。在父小部件中,我将调用相应的 Card 小部件方法来控制每个 Card 的动画。
在 Card 小部件中公开 showCard 方法:
class Card extends StatefulWidget {
final _CardState _CardState = _CardState();
@override
State<StatefulWidget> createState() => _CardState;
void showCard()=>_CardState.showCard();
}
AnimationController _acCardFlip;
Animation<double> _frontFlip;
Animation<double> _backFlip;
@override
void initState() {
super.initState();
_acCardFlip = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 250),
);
_frontFlip = Tween(
begin: 1.0,
end: 0.0,
).animate(CurvedAnimation(
parent: _acCardFlip,
curve: Interval(0.0, 0.5, curve: Curves.easeIn),
));
_backFlip = CurvedAnimation(
parent: _acCardFlip,
curve: Interval(0.5, 1.0, curve: Curves.easeOut),
);
}
showCard() {
setState(() {
if (_acCardFlip.isCompleted || _acCardFlip.velocity > 0)
_acCardFlip.reverse();
else
_acCardFlip.forward();
});
}
Card card = Card();
card.showCard();
关于Flutter AnimationController/Tween 在 Multiple AnimatedBuilder 中重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55877787/
每次双击图像时,我都会尝试启动动画。我的代码适用于第一个双标签,但由于某种原因停止适用于下一个双标签。我的代码如下所示:` 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
我是一名优秀的程序员,十分优秀!