问题描述
通常当滚动速度足够快时,我的应用会在滚动视图和持久标题之间显示一条小的透明线。
最小的可重现代码: https://gist.github.com/Moonspeaker/0e8573ff6620a7e00b8f7b04937b51a1
这是录制在视频中的样子: https://www.youtube.com/watch?v=DDxu1NTkaMA&feature=youtu.be
我不知道如何解决这个问题。问题似乎出在带有 Align
的 Alginment.bottomCenter
小部件中。 Column
和 MainAxisAlignment.end
的工作方式相同。
解决方法
尝试用 SliverOverlapAbsorber 包裹您的 SliverPersistentHeader
通常在使用 NestedScrollView 时,您需要将标题包装在此对象中,以免遇到像您描述的红线这样的罕见滚动伪影。
我无法通过下面所述的更改重现该问题。 但您也可以查看 SliverOverlapInjector 和 NestedScrollView 类文档,其中包含使用这两个小部件的示例
...
NestedScrollView(
headerSliverBuilder: (context,scrolling) => [
SliverOverlapAbsorber(
handle:
NestedScrollView.sliverOverlapAbsorberHandleFor(context),sliver: SliverPersistentHeader(
delegate: _Delegate(),pinned: true,),...