请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

加入scrollController之后,无法刷新和上拉加载

当数据不超过一屏幕的时候,会出现无法刷新和上啦加载的问题
当数据超过一屏幕的时候,就能正常使用,这种要怎么处理呢?

正在回答 回答被采纳积分+3

1回答

CrazyCodeBoy 2019-12-08 19:06:10

flutter 列表的限制不超过一屏时无法进行滚动,这时上拉加载更多是无效的,但是不影响下拉刷新。

1 回复 有任何疑惑可以回复我~
  • 提问者 skyjustall #1
    老师,不超过一屏幕的时候刷新也不行,我把刷新方法代码改成:_cityNames.removeRange(0, _cityNames.length ~/ 2);
    一开始超过一屏幕能下拉,当刷新后,_cityNames数据变少,少于一屏幕的时候,就不能刷新,如果把scrollController去掉,少于一屏幕也能刷新
    回复 有任何疑惑可以回复我~ 2019-12-11 22:41:46
  • 提问者 skyjustall #2
    好像跟physics有关
    我看了有关源码:
    physics = physics ?? (primary == true || (primary == null && controller == null && identical(scrollDirection, Axis.vertical)) ? const AlwaysScrollableScrollPhysics() : null),
    
    没有设置physics,当设置了scrollController,那么系统默认会给个null,如果没有设置scrollController,那么系统会给个AlwaysScrollableScrollPhysics,因此上面设置了scrollController,不能滚动,导致RefreshIndicator无效
    回复 有任何疑惑可以回复我~ 2019-12-11 22:57:55
  • 慕运维7159765 回复 提问者 skyjustall #3
    所以不到一屏的时候,不能下拉刷新无法解决是吗
    回复 有任何疑惑可以回复我~ 2020-02-26 22:43:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信