当RecyclerView不在第一项时,如何禁用刷卡刷新布局?

问题描述 投票:1回答:1

我在我的项目中使用swiperefreshlayout和recyclerview。当recyclerview不在第一项时,我想要swiperefreshlayout禁用。我该怎么做?我有一些代码,但它不起作用:

int topRowVerticalPosition = (myRecyclerView == null || myRecyclerView.getChildCount() == 0) ? 0 : myRecyclerView.getChildAt(0).getTop();
                swipeRefreshLayout.setEnabled(layoutManager.findFirstCompletelyVisibleItemPosition() == 0 && topRowVerticalPosition >= 0);
android android-recyclerview swiperefreshlayout
1个回答
1
投票

你需要像这样添加一个OnScrollListener到RecyclerView,你可以使用RecyclerViews第一个孩子的可见性来启用/禁用swipeRefreshLayout:

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);
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.