在我的屏幕上,我需要在另一个ListView中显示ListView.屏幕可以这样总结:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Isolate FutureBuilder Example'),
),
body: Column(
children: [
Text("Header"),
SizedBox(height: 16),
Text("Filters"),
SizedBox(height: 32),
Expanded(
child: ListView.builder(
itemCount: 3,
itemBuilder: (context, index) {
return Column(
children: [
Text("List $index"),
SizedBox(height: 32),
ListView.builder(
shrinkWrap: true,
physics: const ClampingScrollPhysics(),
itemCount: 50,
itemBuilder: (context, index) {
print("building $index");
return Text("$index");
})
],
);
},
),
)
],
));
}
如果您try 一下,您会发现内部ListView.builder
个项目的所有200个项目都会立即构建,导致我的主应用程序中的UI堵塞,因为我的项目越来越复杂.
如何防止这种情况并保留仅构建可见项目的ListView
种行为?我读到shrinkWrap: true
可能是原因,但如果我将其设置为假,我就会出现错误Vertical viewport was given unbounded height.
并且无法修复它