要求
在我的Flutter应用程序中,我有3个文本小部件,其中包含文本“one”,“two”和“three”。我想一次显示一个,动画应该如下所示:
- “one”从右侧(Offset(1,0))滑动到中心(Offset.zero)并在那里停留1秒
- 然后它从中心(Offset.zero)向左(Offset(-1,0))滑动,而“two”以与“one”相同的方式从右向中心滑动。
- “二”在那里停留另外1秒,并且我们重复地继续此。
- 动画可以在页面顶部查看here。*
我尝试的内容:
我尝试使用AnimatedSwitcher
来实现它,如下所示,但它给出了意想不到的结果。
AnimatedSwitcher(
duration: const Duration(milliseconds: 1000),
reverseDuration: Duration(seconds: 0),
transitionBuilder: (Widget child, Animation<double> animation) {
return SlideTransition(
position: Tween<Offset>(
begin: Offset(3.0, 0.0),
end: Offset(1, 0),
).animate(animation),
child: child,
);
},
child: SlideTransition(
key: Key(texts[currentIdx]),
position: Tween<Offset>(
begin: Offset.zero,
end: Offset(-3.0, 0.0),
).animate(_controller),
child: Text(
texts[currentIdx],
style: TextStyle(fontSize: 30),
),
),
);
我怎样才能实现这个动画?
1条答案
按热度按时间bhmjp9jg1#
@pskink让我意识到我在看一个完全错误的方向。我用pageView. builder解决了这个问题。代码如下: