- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我希望为 AnimatedContainer
和 ClipPath
在 y 轴上移动设置动画。
这是我当前的代码:
class Clip extends StatelessWidget {
final double height;
Clip(this.height);
@override
Widget build(BuildContext context) {
return Scaffold(
body: ClipPath(
clipper: RoundedClipper(height),
child: AnimatedContainer(
duration: Duration(seconds: 5),
height: height,
color: Colors.amber,
),
),
);
}
}
class RoundedClipper extends CustomClipper<Path> {
final double height;
RoundedClipper(this.height);
@override
Path getClip(Size size) {
var path = Path();
path.lineTo(0.0, height - 200);
path.quadraticBezierTo(
size.width / 2,
height,
size.width,
height - 200,
);
path.lineTo(size.width, 0.0);
path.close();
return path;
}
@override
bool shouldReclip(CustomClipper<Path> oldClipper) => true;
}
根据我传递给此类的高度,AnimatedContainer 将通过动画在两者之间转换,而裁剪器不会设置动画。
它是这样的:
我尝试用 AnimatedContainer 包装剪裁器并在其上设置动画,但没有成功。
我怎样才能使剪切路径与 AnimatedContainer 一起垂直动画?
感谢所有愿意提供帮助的人
最佳答案
动画容器使用它自己的动画,所以,我不知道剪辑路径和动画容器是否可以一起使用相同的动画。但是我通过使用自定义动画尝试了类似的方法来满足您的需求。请看看这是否是您想要的。
我将剪辑类转换为有状态的以使用动画。
class Clip extends StatefulWidget {
final double height;
Clip(this.height);
@override
_ClipState createState() => _ClipState();
}
class _ClipState extends State<Clip> with TickerProviderStateMixin {
AnimationController _controller;
Animation<double> animation;
final double startingHeight =20.0;
@override
void initState() {
super.initState();
_controller =
AnimationController(vsync: this, duration: Duration(seconds: 5));
animation = Tween<double>(begin: startingHeight, end: widget.height).animate(_controller);
_controller.forward(from: 0.0);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: AnimatedBuilder(
builder: (context, anim) {
return ClipPath(
clipper: RoundedClipper(animation.value),
child: Container(
height: animation.value,
color: Colors.amber,
),
);
},
animation: _controller,
),
);
}
}
在这里,您可以使用 _controller 控制您的动画。
关于animation - Flutter - ClipPath + AnimatedContainer - 路径动画不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55649155/
Example 使用 CupertinoPicker,我希望它使用 AnimatedContainer 以动画形式显示在文本输入下方的 View 中,但是当它变得可见时,我收到溢出警告。据我所知,您无
我正在尝试制作一个类,如果您单击一个按钮,它会变大,然后再次单击会缩小。但是动画不工作 这是我的 import 'package:flutter/material.dart'; import 'pac
我想为列表中两个项目之间的间隙设置动画。我想过使用高度最初为零的 AminatedContainer,但我不熟悉如何进行这项工作。我现在的代码是: new AnimatedContainer(
基本上我想在 2 个值之间设置 AnimatedContainer 的高度动画。但这就是问题所在。当我的状态为 1 时,我知道高度,因此我可以设置动画,但是当我的状态为 0 时,我希望动画容器扩展到可
因此,我正在做一些事情,我想列出这些“胶囊”(圆角矩形容器)的列表。当用户点击其中任意一个时,它将扩展到全屏,而其余的则停留在较低的层上,并且不执行任何操作。 我正在使用AnimatedContain
我找不到两者之间的区别,以及为什么您想要使用其中一个。 在我看来,他们俩几乎做了同样的事情。 为什么以及在哪里会使用其中一个? 最佳答案 AnimatedContainer 用于快速完成任务且用途简单
假设我们有 Column 的 3 个 child : Flexible( flex:1, child: Container( color: Colors.red, ),
我有一个带有子控件的简单AnimatedWidget。 AnimatedContainer( duration: Duration(milliseconds: 2000), curve:
Expanded( flex: 1, child: Padding( padding:
Expanded( flex: 1, child: Padding( padding:
我希望为 AnimatedContainer 和 ClipPath 在 y 轴上移动设置动画。 这是我当前的代码: class Clip extends StatelessWidget { fin
我希望使用 transform 为容器的比例设置动画。 AnimatedContainer 的属性(property);但是,比例尺并没有过渡,而是直接从头跳到尾。 代码片段: var contain
我是一名优秀的程序员,十分优秀!