NestedScrollView persistent header 有时看起来很别扭

NestedScrollView persistent header sometimes looks awkward

通常当滚动速度足够快时,我的应用会在滚动视图和持久视图之间显示一条透明的小线 header。

最少的可重现代码: https://gist.github.com/Moonspeaker/0e8573ff6620a7e00b8f7b04937b51a1

这是它在视频中的样子: https://www.youtube.com/watch?v=DDxu1NTkaMA&feature=youtu.be

我不知道如何解决这个问题。问题似乎出在带有 Alginment.bottomCenterAlign 小部件中。 ColumnMainAxisAlignment.end 的工作方式相同。

尝试用 SliverOverlapAbsorber 包装您的 SliverPersistentHeader 通常在使用 NestedScrollView 时,您需要将 header 包装在 object 中,以免遇到像您描述的红线这样的罕见滚动工件。

我无法通过下面所述的更改重现该问题。 但您也可以查看 SliverOverlapInjector and the NestedScrollView class 文档,其中包含使用这两个小部件的示例

...
NestedScrollView(
            headerSliverBuilder: (context, scrolling) => [
              SliverOverlapAbsorber(
                handle:
                    NestedScrollView.sliverOverlapAbsorberHandleFor(context),
                sliver: SliverPersistentHeader(
                  delegate: _Delegate(),
                  pinned: true,
                ),
...