flutter - 滚动 TabBarView 子项时使 SliverAppBar 可滚动
问题描述
我的主屏幕底部导航由两个项目组成,其中所有项目都有 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中有一个例子
推荐阅读
- python - Google Cloud Dataflow - 从 PubSub 到 Parquet
- hybris - 尝试在 Hybris 上启用动态约束时出错
- php - 将 MSSQL (2017) DB 与 IIS 中托管的 PHP7.4(x64) 连接起来
- python - Convert 'tabulated' string of pandas dataframe back into a dataframe
- javascript - Chartjs yAxes 不呈现刻度
- python - 如何在 Python.subprocess 中获取丢包值
- authentication - 带有 Azure AD 身份验证的 IIS 身份验证设置
- mongoid - 什么是等效增量!关于蒙古人
- c# - 在 C# 中的 HTTP Get 请求中传递可变数量的多个参数
- python - 在 Cherrypy 中设置配置文件大小