嵌套SingleChildScrollView随父ListView.builder自动下滑问题及排查
SingleChildScrollView自动滚到底部问题的排查与解决
问题场景
代码结构简化如下:
ListView.builder SizedBox Card Flexible SingleChildScrollView

当SingleChildScrollView内容超出父组件范围(开启滚动)时,手动滚动ListView.builder后,新加载或刷新的卡片项中的SingleChildScrollView会自动滚到底部。需保留SingleChildScrollView的手动滚动功能,因此不能使用NeverScrollableScrollPhysics(),且尝试过包括ChatGPT建议在内的多种方法均无效。
排查结果与解决方案
- 问题根源:为父Widget类设置
PageStorageKey会导致内部多个SingleChildScrollView共享并记住滚动位置 - 解决方法:删除父Widget的
PageStorageKey后,自动滚到底部的症状消失
内容的提问来源于stack exchange,提问作者Jun Ji
相关产品推荐
相关产品推荐

