使用NestedScrollView,向上滚动会将其他标签重置为上方

时间:2019-07-14 04:18:12

标签: flutter dart flutter-sliver

将SliverAppBar与NestedScrollView中的某些选项卡结合使用时,使用PageStorageKey可能不会保留滚动位置。

模式A:

将“左”选项卡滚动到中间,然后切换到“右”选项卡。 将“右”选项卡滚动到中间,然后返回“左”选项卡。 在这种情况下,“左”选项卡将保持滚动位置。

模式B:

将“左”选项卡滚动到中间,然后切换到“右”选项卡。 显示“右”选项卡的顶部并向上滚动,返回到“左”选项卡。 在这种情况下,“左”标签将不保留滚动位置(滚动位置将为0)

无论显示哪个选项卡,都滚动到顶部并展开SliverAppBar。 NestedScrollview中所有ScrollView的位置似乎都重置为顶部。

即使是模式B, 如何保持左侧标签滚动位置?

这是我的代码。 https://gist.github.com/ysknsn/d90a84a180e32de5b0691de874c65d55

这是屏幕截图。 enter image description here (SliverAppBar在向下滚动时会收缩,而在向上滚动时会扩展)

任何建议都是有帮助的。谢谢。

1 个答案:

答案 0 :(得分:0)

您是否曾尝试在您的状态下存储滚动控制器的当前滚动偏移量?然后,您可以在build方法中将此值作为初始滚动偏移量传递。