原则上你使用的RecyclerView框架可能是自带刷新的,如果没有就可能会出现这种问题,滑动时会出现卡顿、触发刷新的时机也不对。
思路:
监听RecyclerView的滑动,当滑动到顶部的时候,再设置SwipeRefreshLayout刷新可用。
代码
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); //解决mRecyclerView与mSwipeRefreshLayout在部分机型上滑动冲突 mSwipeRefreshLayout.setEnabled(recyclerView.getChildCount() == 0 || recyclerView.getChildAt(0).getTop() >= 0); } });