Как отключить макет обновления смахивания, когда RecyclerView не на первом элементе?

1

В своем проекте я использую swiperefreshlayout и recyclerview. Я хочу отключить функцию swiperefreshlayout, когда не отображается первый элемент. как мне это сделать? У меня есть код, но он не работает:

int topRowVerticalPosition = (myRecyclerView == null || myRecyclerView.getChildCount() == 0) ? 0 : myRecyclerView.getChildAt(0).getTop();
                swipeRefreshLayout.setEnabled(layoutManager.findFirstCompletelyVisibleItemPosition() == 0 && topRowVerticalPosition >= 0);
Теги:
android-recyclerview
swiperefreshlayout

1 ответ

0

Вам необходимо добавить OnScrollListener в RecyclerView следующим образом, и вы можете включить/отключить swipeRefreshLayout, используя видимость первого дочернего элемента RecyclerView:

myRecyclerView.addOnScrollListener(new OnScrollListener() {
  @Override
  public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
    View firstChild = recyclerView.getChildAt(0);
    swipeRefreshLayout.setEnabled(firstChild.getVisibility() == View.VISIBLE);
  }
});
  • 0
    Благодарю. Я пытаюсь это, но все еще не работает.
  • 0
    @ Фарид, можешь поделиться тем, что попробовал, но не работает?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню