最近,我发现显示小部件列表时,stack
和listView
的工作方式不同。
这是一个示例:
通过这段代码,我得到了listData
小部件(自定义小部件)的两项的列表
new ListView(
children: <Widget>[
new Container(
child: ListData(
margin: EdgeInsets.all(4.0),
width: screenSize.width,
title: "Breakfast with Harry",
subtitle: "9 - 10am ",
image: DecorationImage(image: AssetImage('assets/avatar-1.jpg'),
fit: BoxFit.cover,))
),
new Container(
child: ListData(
margin: EdgeInsets.all(4.0),
width: screenSize.width,
title: "Breakfast with Harry",
subtitle: "9 - 10am ",
image: DecorationImage(image: AssetImage('assets/avatar-1.jpg'),
fit: BoxFit.cover,))
),
],
)
将ListView
替换为stack
new Stack(
children: <Widget>[
new Container(
child: ListData(
margin: EdgeInsets.all(4.0),
width: screenSize.width,
title: "Breakfast with Harry",
subtitle: "9 - 10am ",
image: DecorationImage(image: AssetImage('assets/avatar-1.jpg'),
fit: BoxFit.cover,))
),
new Container(
child: ListData(
margin: EdgeInsets.all(4.0),
width: screenSize.width,
title: "Breakfast with Harry",
subtitle: "9 - 10am ",
image: DecorationImage(image: AssetImage('assets/avatar-1.jpg'),
fit: BoxFit.cover,))
),
],
)
我只得到一件物品,而从检查员看来,所有物品都是彼此叠放的。
stack
和listview
是否应该以相同的方式工作?
答案 0 :(得分:2)
堆栈和listview是否应该以相同的方式工作?
不,一点也不。 Stack
和ListView
非常不同。
ListView
用于垂直/水平滚动列表。它类似于Row
/ Column
,但其内容是可滚动的。Stack
是将多个窗口小部件自由定位在同一父对象下。它通常用于将小部件彼此堆叠。