liaoinstan / SpringView

🔥 A custom view pull to refresh,support ScrollView,ListView,RecyclerView,WebView and all another views, easy to use
Apache License 2.0
1.93k stars 355 forks source link

刷新显示的状态下,手动向上滑动,如果再次下滑能否还是保持前面的刷新状态。 #77

Open NiceNicks opened 6 years ago

NiceNicks commented 6 years ago

下拉刷新后,正在进行阻塞网络请求,如果网络状况差,一直在等待。此时手动向上滑,隐藏head后,再次下拉会重新再走一次刷新流程,相当于又进行一次网络请求。请问能否保持上一次刷新的状态。再次下拉时,headView的状态不会重置。

NiceNicks commented 6 years ago

我尝试改了下,在OnTouchEvent()里面,加上刷新的判断。刷新完成后再将hasRefresh置为false..这样可以保存上次的刷新状态。再次下拉后不会重新开始刷新了

1: //回调onDropAnim接口 if (!hasRefresh) { Log.d("tanjunwen", "onTouchEvent: 2"); callOnDropAnim(); //回调callOnPreDrag接口 callOnPreDrag(); //回调onLimitDes接口 callOnLimitDes(); isFirst = false; } 2: case MotionEvent.ACTION_UP: if (!hasRefresh) { restSmartPosition(); isFirst = true; _firstDrag = true; dsY = 0; dy = 0; } needResetAnim = true;

liaoinstan commented 6 years ago

SpringView并不会考虑业务逻辑,你的状态保存的逻辑可以放在Header中,你可以自定义你的Header,或者重写已有的Header,如果是用户手动关闭的话在onFinishAnim()中不重置header即可