我想使主页可滚动,这意味着我想在主体上滚动所有内容,因此我创建了一个列表视图,并且在列表视图内还有其他小部件,在这些小部件下,我想展示一个具有另一个listview.builder,但我不希望它单独滚动,我希望它与主屏幕上的其他小部件一起滚动
这是我的主屏幕正文:
for (const attendee of event.attendees as ExtendedGCalAttendee[]) {...}
body: SafeArea(
child: ListView(
children: <Widget>[
Search(),
FeaturedProducts(),
OnSaleProducts(),
],
),
),
是其中具有futurebuilder的小部件,这是代码
OnSaleProducts()
答案 0 :(得分:0)
然后,您不应在OnSalesProduct()中使用ListView,而应使用简单的列!
Column(children: List.generate(count, (int index) => widget(index))
答案 1 :(得分:0)
希望您想知道的是:
让我们试试这个代码,希望你能把你的回答者和解决方案放在一起:
SingleChildScrollView(
child: Column(
children: <Widget>[
Search(),
FeaturedProducts(),
OnSaleProducts(),
],
),
),
现在为 OnSaleProducts() 小部件执行此操作:
Widget build(BuildContext context) {
return Container(
height: MediaQuery.of(context).size.height, // better for fixed size
width: double.infinity,
child: FutureBuilder<PopularFoodList>(
future: getOnSaleProduct(),
builder: (BuildContext context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: 9,
itemBuilder: (context, index) {
var item = snapshot.data[index]; // snapshot.data.anotherProperty[index]; // If your model has anotherProperty
return InkWell(child: ProductCard(name: item.name, price: item.price, picture: '', onSale: true));
});
} else if (snapshot.hasError) {
return Center(child: Text(snapshot.error.toString()));
}
return Center(child: CircularProgressIndicator());
})
);
}