Flutter中stack的children声明有啥区别
Posted
技术标签:
【中文标题】Flutter中stack的children声明有啥区别【英文标题】:What's the difference between stack's children declaration in FlutterFlutter中stack的children声明有什么区别 【发布时间】: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, //孩子:卡片,孩子:堆栈用于相对排列孩子。如果要显示某些数据的列表,请使用 Listview 或 Listview.Builder()。
或者
如果您只想使用 Stack,您可以使用 Position 和 Center 小部件显示数据
【讨论】:
我不需要 Listview.Builder()。我已经使用了 Positioned Widget 及其左参数,就像这样 left:animation.value。 animation.value 在其执行过程中反复变化,但小部件不会移动。这发生在编写 children:cards 的情况下,其中 cards 是 List以上是关于Flutter中stack的children声明有啥区别的主要内容,如果未能解决你的问题,请参考以下文章