当 SliverAppBar 与 NestedScrollView 中的某些选项卡组合时,使用 PageStorageKey 可能无法保持滚动位置。
模式A:
将左侧选项卡滚动到中间,然后切换到右侧选项卡。 将右侧选项卡滚动到中间,然后返回左侧选项卡。 在这种情况下,左标签保持滚动位置。
模式 B:
将左侧选项卡滚动到中间,然后切换到右侧选项卡。 显示右侧选项卡的顶部并向上滚动,返回到左侧选项卡。 在这种情况下,Left 选项卡不保留滚动位置(滚动位置将为 0)
无论您显示的是哪个选项卡,滚动到顶部并展开 SliverAppBar。 NestedScrollview 中所有 ScrollView 的位置好像都重置到了顶部。
即使在模式 B 的情况下, 如何保持左侧标签滚动位置?
这是我的代码。 https://gist.github.com/ysknsn/d90a84a180e32de5b0691de874c65d55
这是截图。 (SliverAppBar 向下滚动时缩小,向上滚动时展开)
任何建议都是有帮助的。谢谢。
最佳答案
您是否尝试过在您的状态下存储滚动 Controller 的当前滚动偏移量?然后您可以在构建方法中将此值作为初始滚动偏移量传递。
关于flutter - 使用 NestedScrollView,向上滚动会将其他选项卡重置为上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57024554/