【发布时间】:2019-11-09 11:10:09
【问题描述】:
我在我的代码中编写了 List 和 [items]。使用 [items] 时,动画可以正常工作,但在 List 的情况下,它根本不起作用。这两个声明有什么区别?
附:我是一个完全的新手。希望能得到一些帮助。
class _MyAppState extends State<MyApp> with TickerProviderStateMixin {
List<Widget> cards = [];
AnimationController _controller;
double _point = 2.3;
Widget _initCard(int index) {
Animation _animLeft = Tween(begin: _point * index, end: _point * 8 * index)
.animate(CurvedAnimation(parent: _controller, curve: Curves.linear))
..addListener(() {
setState(() {});
});
return Container(
width: 50.0,
height: 50.0,
color: Colors.red
margin: EdgeInsets.only(
left: _animLeft.value.toDouble(),
);
}
@override
void initState() {
_controller = AnimationController(vsync: this, duration: Duration(seconds: 3));
for (int i = 0; i < 5; ++i) {
cards.add(_initCard(i));
}
_controller.forward();
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
width: 320,
height: 520,
color: Colors.deepOrange,
child: Stack(
overflow: Overflow.visible,
children: cards,
// children: <Widget>[
// _initCard(0),
// _initCard(1),
// ],
)));
}
}
【问题讨论】:
-
你能把代码分享给我们,让我们看看你做了什么吗?
-
@override Widget build(BuildContext context) { return Scaffold( body: Container( width: 320, height: 520, color: Colors.deepOrange, child: Stack( overflow: Overflow.visible, //孩子:卡片,孩子:
[ _initCard(0), _initCard(1), _initCard(2), _initCard(3), _initCard(4), ], ))); } -
P.S_2。很抱歉像这样过去了代码,但我不知道如何更改语法。
-
@seda 您应该将其粘贴到问题的正文中。
-
@alexpfx 我这样做了,但它显示了无法修复的语法错误,因为我遵循了 Flutter 的语法
标签: animation flutter dart stack widget