- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有星星 png 图片,我需要使用 Flutter AnimationController 和 Transformer 旋转星星。我找不到图像旋转动画的任何文档或示例。
知道如何使用 Flutter AnimationController 和 Transform 旋转图像吗?
更新:
class _MyHomePageState extends State<MyHomePage> with TickerProviderStateMixin {
AnimationController animationController;
@override
void initState() {
super.initState();
animationController = new AnimationController(
vsync: this,
duration: new Duration(milliseconds: 5000),
);
animationController.forward();
animationController.addListener(() {
setState(() {
if (animationController.status == AnimationStatus.completed) {
animationController.repeat();
}
});
});
}
@override
Widget build(BuildContext context) {
return new Container(
alignment: Alignment.center,
color: Colors.white,
child: new AnimatedBuilder(
animation: animationController,
child: new Container(
height: 80.0,
width: 80.0,
child: new Image.asset('images/StarLogo.png'),
),
builder: (BuildContext context, Widget _widget) {
return new Transform.rotate(
angle: animationController.value,
child: _widget,
);
},
),
);
}
}
最佳答案
完整示例(空安全):
按“开始”使星形图标旋转,直到您按“停止”。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage>
with SingleTickerProviderStateMixin {
late AnimationController _controller;
@override
void initState() {
_controller = AnimationController(
duration: const Duration(milliseconds: 5000),
vsync: this,
);
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Demo"),
),
body: Center(
child: Column(
children: <Widget>[
RotationTransition(
turns: Tween(begin: 0.0, end: 1.0).animate(_controller),
child: Icon(Icons.stars),
),
ElevatedButton(
child: Text("go"),
onPressed: () => _controller.forward(),
),
ElevatedButton(
child: Text("reset"),
onPressed: () => _controller.reset(),
),
],
),
),
);
}
}
分步指南:
首先,让您的小部件状态类实现SingleTickerProviderStateMixin
。
其次,定义一个 AnimationController
并且不要忘记释放它。如果您尚未使用 null-safe,请删除 late
关键字。
late AnimationController _controller;
@override
void initState() {
_controller = AnimationController(
duration: const Duration(milliseconds: 5000),
vsync: this,
);
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
然后用 RotationTransition
包裹你的 Widget
。
RotationTransition(
turns: Tween(begin: 0.0, end: 1.0).animate(_controller),
child: Icon(Icons.stars),
),
最后,调用 AnimationController
上的方法来开始/停止动画。
.forward
.repeat
.stop
.reset
.animateTo
关于flutter - 如何使用 Flutter AnimationController 和 Transform 旋转图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745546/
每次双击图像时,我都会尝试启动动画。我的代码适用于第一个双标签,但由于某种原因停止适用于下一个双标签。我的代码如下所示:` 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
我是一名优秀的程序员,十分优秀!