我的主屏幕带有底部导航,由两个项目组成,所有这些项目都具有无限列表内的ListView,并且我希望SliverAppBar在用户滚动其中一个列表时可滚动。这是我到目前为止的内容
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: new Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
snap: false,
floating: false,
pinned: true,
expandedHeight: 160.0,
flexibleSpace: FlexibleSpaceBar(
title: Text('Title'),
),
),
SliverFillRemaining(
child: TabBarView(
children: <Widget>[Items(), Activities()], //THESE HAVE LIST VIEW IN EACH
),
)
],
),
));
}
}
这是TabBarView子项之一的代码。
class Items extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<Widget> itemsWidgets = List.from(getItemsList()
.map((Item item) => createItemWidget(context, item)));
return Scaffold(
body: Center(
child: ListView(
children: itemsWidgets,
),
),
);
}
ListTile createItemWidget(BuildContext context, Item item) {
return new ListTile(
title: Text(item.sender.name),
subtitle: Text('10:30 am'),
);
}
}
当用户滚动列表之一时,SilverAppBar如何滚动?任何帮助/建议将不胜感激。
使用NestedScrollView。 api中有一个示例