所以我的UI是在一个滚动的ListView中构建的,这很好,我将在底部拥有同一小部件的许多实例,我如何才能在不将它们放入另一个ListView中的情况下添加这些小部件?如果我这样做了,用户可以滚动内部的,而不是父级的。
我将从一个数据库中提取ContestBar
小部件的数量,该数据库也将包含每个小部件的信息。必须有一种方法来动态填充它们,而不是将它们放在列表视图中,因为我希望整个屏幕都滚动,而不仅仅是ContestBar
小部件。
这是代码。
@override
Widget build(BuildContext context) {
return RefreshIndicator(
onRefresh: _onRefresh,
child: ListView(
children: <Widget>[
Container(
width: double.infinity,
height: 150.0,
color: Colors.black,
),
ProfileBar(
displayName: 'Zach S.',
points: 1324,
balance: 256.15,
initials: 'ZS',
),
Container(
height: 64.0,
decoration: const BoxDecoration(
border: const Border(bottom: const BorderSide(width: 1.0, color: Colors.black12)),
),
padding: const EdgeInsets.symmetric(horizontal: 8.0, vertical: 16.0),
child: ListView(
scrollDirection: Axis.horizontal,
children: List<Padding>.generate(sortChipNames.length, (int index) {
return Padding(
padding: const EdgeInsets.only(right: 8.0),
child: ChoiceChip(
label: Text(sortChipNames[index]),
selected: _selectedChips.contains(index),
onSelected: (bool selected) {
setState(() {
_selectedChips.contains(index) ? _selectedChips.remove(index)
: _selectedChips.add(index);
});
},
),
);
}),
),
),
// Here is the instance of the same widget, this will eventually come from a database and have way more than 5.
ContestBar(),
ContestBar(),
ContestBar(),
ContestBar(),
ContestBar(),
],
),
);
}
发布于 2018-06-06 03:59:37
好的,我可以通过添加一个Flex
小部件,将direction
属性设置为Axis.vertical
,并将children
设置为ContestBar
小部件列表来使其正常工作。代码如下。
列表
final List<ContestBar> testContests = <ContestBar>[
ContestBar(),
ContestBar(),
ContestBar(),
ContestBar(),
ContestBar(),
];
小部件
Flex(
direction: Axis.vertical,
children: testContests,
),
https://stackoverflow.com/questions/50707352
复制相似问题