调用LoadingMoreBase的refresh()方法时不会自动清除数据
lds8988 opened this issue · 8 comments
@OverRide
@mustCallSuper
Future refresh([bool notifyStateChanged = false]) async {
if (notifyStateChanged) {
this.clear();
indicatorStatus = IndicatorStatus.fullScreenBusying;
onStateChanged(this);
}
return await _innerloadData();
}
在源码中如果notifyStateChanged = false,就不会调用 this.clear();这行代码,需要自行清除。但是我只是想不显示IndicatorStatus.fullScreenBusying。场景是下拉刷新时,数据请求完毕才更新UI;
完全可以自己清除的。。特殊case自己处理
完全可以自己清除的。。特殊case自己处理
但是refresh 方法的notifyStateChanged = false的这个参数的使用场景是什么?refresh方法不应该自动清除数据吗?
1.下拉刷新的时候, 希望请求到数据再通知ui 2.下拉刷新的时候,希望立刻刷新ui,出现全屏loading
notifyStateChanged 这个单词的意思很明显嘛
1.下拉刷新的时候, 希望请求到数据再通知ui 2.下拉刷新的时候,希望立刻刷新ui,出现全屏loading
notifyStateChanged 这个单词的意思很明显嘛
但是 notifyStateChanged = false,不会调用 this.clear(),但是方法名又叫refresh,不会让人觉得很奇怪吗?refresh方法的效果是loadMore
我不是讲过了吗。主要有2种场景,第一种场景就需要自己clear,没有毛病啊,notifyStateChanged 只是控制是否通知ui
我不是讲过了吗。主要有2种场景,第一种场景就需要自己clear,没有毛病啊,notifyStateChanged 只是控制是否通知ui
我看你代码,notifyStateChanged 不能控制是否刷新UI,因为最终都会调用onStateChanged方法,只是notifyStateChanged为true时,会调用两次onStateChanged方法。所以不自己处理的话,当调用refresh(false)相当于调用了loadMore方法。我觉得这样有点奇怪,不看你代码的话就很容易搞错。
怎么会不控制啊。。1.下拉刷新的时候, 希望请求到数据再通知ui 2.下拉刷新的时候,希望立刻刷新ui,出现全屏loading
第2种啊。。通知你已经开始刷新了。。不通知的话。。就是原来的数据直接替换成新的数据
怎么会不控制啊。。1.下拉刷新的时候, 希望请求到数据再通知ui 2.下拉刷新的时候,希望立刻刷新ui,出现全屏loading
第2种啊。。通知你已经开始刷新了。。不通知的话。。就是原来的数据直接替换成新的数据
哦哦,我懂了。之前看错了,原来loadData([bool isloadMoreAction = false])那里可以判断是否刷新的。谢谢啊!