flutter - 标题条不浮动在 NestedScrollView 中的列表上
问题描述
我有一个 Material Design 屏幕,我在其中使用了RefreshIndicator
下拉刷新效果。但是,我需要RefreshIndicator
出现在SliverAppBar
;下方 因此,我不能只留下SliverAppBar
列表内部CustomScrollView
,我需要在NestedScrollView
.
问题来了,因为我似乎无法同步 list 和 header 的一般滚动。列表滚动正常,但标题没有。我希望它在向上/向下滚动时浮动并捕捉。
class Sample extends StatefulWidget {
@override
_SampleState createState() => _SampleState();
}
class _SampleState extends State<Sample> {
final ScrollController _scrollController = new ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: NestedScrollView(
headerSliverBuilder: (context, _) => [
SliverOverlapAbsorber(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
sliver: SliverAppBar(
floating: true,
snap: true,
title: Text('Title'),
),
)
],
body: Builder(
builder: (context) => RefreshIndicator(
onRefresh: () { /* do stuff */ },
child: CustomScrollView(
controller: _scrollController, // needed for an infinite scroll items loading effect
slivers: <Widget>[
SliverOverlapInjector(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context)
)
// more slivers
],
),
)
),
),
);
}
}
我想我遗漏了一些关于头条重叠的注入/吸收的东西。
我怎样才能使SliverAppBar
和一般CustomScrollView
滚动同步?
解决方案
该解决方案适用于我的情况:
添加floatHeaderSlivers: true
到 NestedScrollView
https://github.com/flutter/flutter/issues/17518#issuecomment-641629975
推荐阅读
- artifactory - 将现有 Artifactory OSS 安装迁移到现有 Artifactory PRO 安装
- python - 我希望我的函数在 python 中接受大小写字母
- c# - 防止在错误时执行下一个 ValidationAttributes
- internet-explorer-11 - [BHO][IE11] 捕获事件 newtab
- python - 通过 python3 中连接集群的多数投票进行标记
- javascript - Javascript Moment.js 将时间从上午更改为下午
- react-native - 反应本机屏幕配置失败
- bash - 如何以正确的权限写入目标文件夹?
- c++ - 为琐碎的对象在`this`上调用placement new是否安全?
- flutter - 如何更改 MaterialPageRoute 的状态?