我在代码中写了List和[items]。当使用[item]时,动画可以正常工作,但是在List的情况下,动画根本不起作用。这两个声明有什么区别?
P.S。我真是个新手。希望得到一些帮助。
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),
// ],
)));
}
}
答案 0 :(得分:0)
堆栈用于相对安排孩子。如果要显示某些数据的列表,请使用Listview或Listview.Builder()。
或
如果只想使用Stack,则可以使用Position和Center小部件显示数据