Jor*_*son 11 listview dart flutter
是否可以在 a 中使用ListView.builder(或类似的东西)CustomScrollView?我有一个CustomScrollView这样的:
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(...),
SliverList(delegate: SliverChildListDelegate(children))
],
),
);
Run Code Online (Sandbox Code Playgroud)
这很好用,但在我的实际场景中,列表可能有数千个项目,所以我不想将它们全部传递给SliverChildListDelegate. 我想使用ListView.builder(或类似的东西)来构建滚动到视图中的项目。我原以为那里是一个.builder在任的构造函数SliverList或 SliverChildListDelegate,但我没有看到这样的事情。我错过了什么吗?
Hus*_*lah 19
我不确定它是如何在 CustomScrollView 中完成的,但你可以试试这个:
Scaffold(
body: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
SliverAppBar(...),
];
},
body: ListView.builder(..),)
);
Run Code Online (Sandbox Code Playgroud)
Rém*_*let 16
的delegate参数SliverList不一定是SliverChildListDelegate。
也可以使用SliverChildBuilderDelegate来达到builder效果ListView.builder
SliverList(delegate: SliverChildBuilderDelegate((context, index) {
return Container();
}));
Run Code Online (Sandbox Code Playgroud)
您可以使用 List.generate 作为下面的示例
return Scaffold(
body: CustomScrollView(
slivers: [
SliverAppBar(...),
SliverList(delegate: SliverChildListDelegate(
List.generate(yourList.length, (idx) {
return Padding(
padding: const EdgeInsets.only(left: 8.0, right: 8.0),
child: Card(
child: ListTile(
leading: Icon(null),
title: Text(yourList[idx]),
onTap: null,
),
),
);
})
))
],
),
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12245 次 |
| 最近记录: |