gpt4 book ai didi

user-interface - Flutter slideTransition没有动画

转载 作者:IT老高 更新时间:2023-10-28 12:39:15 26 4
gpt4 key购买 nike

所以我试图在 flutter 中创建一个简单的幻灯片过渡元素,但遇到了一些困难。下面所做的是等待动画时间,然后只显示 Text("hello there Sailor")。我不知道为什么这不是动画 - 它似乎与之前的帖子非常相似,其中有一个简单的示例 (Sliding animation to bottom in flutter)。

这就是我如何调用以下代码: DeleteCheck(offsetBool: widget.model.deleteNotify, widthSlide: 0.50*width100) where double width100 = MediaQuery.of(context).size .width;.

有人看到我做错了吗?

class DeleteCheck extends StatefulWidget{

final offsetBool;
final double widthSlide;

DeleteCheck({
Key key,
this.offsetBool,
this.widthSlide
}): super(key: key);

@override
State<StatefulWidget> createState() {
return new _MyDeleteCheck();
}
}

class _MyDeleteCheck extends State<DeleteCheck> with TickerProviderStateMixin {
AnimationController _controller;
Animation<Offset> _offsetFloat;

@override
void initState() {
super.initState();

_controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 1),
);

_offsetFloat = Tween<Offset>(begin: Offset(widget.widthSlide, 0.0), end: Offset.zero)
.animate(_controller);

_offsetFloat.addListener((){
setState((){});
});

_controller.forward();

}

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
double height100 = MediaQuery.of(context).size.height;
double width100 = MediaQuery.of(context).size.width;
return new SlideTransition(
position: _offsetFloat,
child: Container(
color: Colors.cyan,
width: 0.525*width100-3.0,
child: Text("hello there sailor")
)
);
}
}

最佳答案

我要告诉你一个好消息!您的代码正在运行! :) 动画看起来好像没有发生,因为它移动的距离巨大Offset ,传递给 SlideTransition , 是相对于它的 child 的大小。例如您的 child 有 width: 100.0 并且您使用 Offset(2.0, 0.0) 偏移,您的 child 将向右移动 200.0 像素.

尝试一下更改开始:偏移(widget.widthSlide,0.0),结束:偏移.零开始:Offset(2.0, 0.0),结束:Offset.zero。您会看到文本从屏幕右侧缓慢移动到屏幕中央。因此,您只需要调整参数设置。

SlideTransition changed

无论如何,这里有一些关于优化代码的额外建议:

  • 如果您使用预建的 AnimatedWidgets喜欢 SlideTransition ,您不需要在 Controller 上使用 setState 调用 addListenerAnimatedWidget 自己处理它。因此,您可以删除以下行:

行:

_offsetFloat.addListener((){
setState((){});
});
  • 也没有必要调用 const 构造函数。您可以像 new 一样忽略此关键字。编译器会在每种情况下优化并选择正确的构造函数。

关于user-interface - Flutter slideTransition没有动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53328534/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com