【发布时间】:2021-10-01 18:07:30
【问题描述】:
当我将 ListView.builder 或 GridView.builder 放入 Column 时,我的应用程序性能“下降”
我的代码是这样的
Scafold(
body:RefreshIndicator(
onRefresh: () {
return refreshUI(setState,);
},
child: SingleChildScrollView(
controller: scrollController,
child: Column(
children: [
ListView.builder(
itemCount: productListObj.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
onTap: (){
showDialog(context: context, builder:
(BuildContext context){
return DetailsProducts(context,productListObj[index]);
});
},
child: cards(index)
);
})
),
//Other Widgets
]
)
)
)
ListView 是一个图片产品列表,当我向下滚动很多时,流动性正在下降,因此我改为
Scafold(
body:RefreshIndicator(
onRefresh: () {
return refreshUI(setState,);
},
child:
ListView.builder(
controller: scrollController,
itemCount: productListObj.length,
itemBuilder: (BuildContext context, int index) {
return
InkWell(
onTap: (){
showDialog(context: context, builder: (BuildContext context){
return DetailsProducts(context,productListObj[index]);
});
},
child: cards(index, price)
);
}
),
)
)
但是,现在我的列表下方没有其他小部件。
我不明白为什么会这样......
【问题讨论】:
-
能否分享完整代码
-
用
ListView小部件替换column小部件。 -
@YeasinSheikh 我更新了帖子
-
也可以添加
cards小部件 -
如果您使用的是列,则需要使用一个扩展的小部件来包装 ListView 之一。不要使用 SingleChildScrollView,因为你会破坏整个逻辑。