scwang90 / SmartRefreshLayout

🔥下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。
https://segmentfault.com/a/1190000010066071
Apache License 2.0
24.9k stars 4.95k forks source link

触发刷新时,如何判断是手势下拉还是自动刷新(autoRefresh) #1268

Open Felix8029 opened 3 years ago

Felix8029 commented 3 years ago

如题,目前框架暴露的isDragging内部处理为一致的,无法判断

roadsolider commented 3 years ago

同样想问一下

Felix8029 commented 3 years ago

同样想问一下 我这里通过处理recycleview的触摸事件,判断手势拖动,可参考: @Override public void onInitialized(@NonNull RefreshKernel kernel, int height, int maxDragHeight) { RefreshHeaderDraggingHelper.handleSmartRefreshLayoutRefreshDragging(kernel, isDragging -> { this.isDragging = isDragging; }); }

@JvmStatic fun handleSmartRefreshLayoutRefreshDragging(kernel: RefreshKernel, listener: OnDraggingListener) { val refreshLayout = kernel.refreshLayout as? SmartRefreshLayout ?: return val count = refreshLayout.childCount for (i in 0 until count) { val childAt = refreshLayout.getChildAt(i) as? RecyclerView ?: continue // 查找RecyclerView,监听滑动事件 childAt.setOnTouchListener { v, event -> when (event.action) { MotionEvent.ACTION_MOVE -> listener.onDraggingStateChange(true) MotionEvent.ACTION_UP -> listener.onDraggingStateChange(false) else -> { } } false } } }

augusting52 commented 3 years ago

Still Open

augusting52 commented 3 years ago

/**