Попробую по другому. Скроллинг и включение элемента SwipeRefreshLayout делал следующим образом:
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
int topRowVerticalPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
swipeRefreshLayout.setEnabled(topRowVerticalPosition >= 0);
}
@Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
});
Везде работает. Но когда внутри Fragment еще включил ItemTouchHelper, для drag'n'drop элементов внутри RecyclerView, данный способ перестает работать для SwipeRefreshLayout
После пары drag'n'drop элементов RecylerView перестает вызываться onRefresh, SwipeRefreshLayout. Хотя по последнему статусу он включен