[我想在另一个可滚动的窗口小部件中有一个ListView.builder
小部件,但是当我像这样构建树时,内部的ListView.builder
会生成所有项目(因此,如果列表很大,渲染速度很慢)
我有以下构建方法:
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(
child: Column(
children: <Widget>[
Text(""),
ListView.builder(
shrinkWrap: true,
primary: false,
itemCount: 999,
itemBuilder: (_, position) {
if (position == 998)
{/* breakpoint*/}
return Placeholder(fallbackHeight: 100,);
}
)
],
),
),
);
}
[执行总是在itemBuilder
的断点处停止(但是如果我删除了第一个SingleChildScrollView
和Column
,一切都很好,仅当需要时才显示最后一个项目)
这是预期的。 SingleChildScrollView
让其子级获得所需的空间并滚动它们。 ListView
借此机会渲染了所有内容。 SingleChildScrollView
滚动此巨大的ListView
。 ListView
需要某种大小限制,才能仅呈现其显示的项目。现在它认为它正在显示所有这些。