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.bottomCenter
的 Align
小部件中。 Column
与 MainAxisAlignment.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,
),
...
通常当滚动速度足够快时,我的应用会在滚动视图和持久视图之间显示一条透明的小线 header。
最少的可重现代码: https://gist.github.com/Moonspeaker/0e8573ff6620a7e00b8f7b04937b51a1
这是它在视频中的样子: https://www.youtube.com/watch?v=DDxu1NTkaMA&feature=youtu.be
我不知道如何解决这个问题。问题似乎出在带有 Alginment.bottomCenter
的 Align
小部件中。 Column
与 MainAxisAlignment.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,
),
...