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

时间:2019-04-08 14:28:18

标签: android android-recyclerview swiperefreshlayout

我在我的项目中使用swiperefreshlayout和recyclerview。我想在recyclerview不在第一项上时禁用swiperefreshlayout。我该怎么做? 我有一些代码,但是没有用:

int topRowVerticalPosition = (myRecyclerView == null || myRecyclerView.getChildCount() == 0) ? 0 : myRecyclerView.getChildAt(0).getTop();
                swipeRefreshLayout.setEnabled(layoutManager.findFirstCompletelyVisibleItemPosition() == 0 && topRowVerticalPosition >= 0);

1 个答案:

答案 0 :(得分:1)

您需要像这样向RecyclerView添加一个OnScrollListener,并且可以使用RecyclerView的第一个孩子的可见性来启用/禁用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);
  }
});