How to know if a RecyclerView has enough content to scroll?

后端 未结 3 1204
我寻月下人不归
我寻月下人不归 2021-01-23 05:11

Currently I am using a RecyclerView with a LinearLayout Manager and an EditText as HeaderView for filtering the content of the list.

I would like to hide the EditText if

相关标签:
3条回答
  • 2021-01-23 05:27

    An answer that also accounts for dynamic screen sizes.

    mRecyclerView.getViewTreeObserver().addOnScrollChangedListener(() -> {
    
        if (mRecyclerView.canScrollVertically(1) && //still scrolling
            mRecyclerView.computeVerticalScrollRange() >= mRecyclerView.getHeight()) { //Big enough for scrolling
    
            return;  //we still scrolling so early out.
            }
    
        DoMyFunction();
    }
    
    0 讨论(0)
  • 2021-01-23 05:29

    do you mean this:

    https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.html#canScrollVertically()

    if(recyclerView.getLayoutManager().canScrollVertically()){
        // do stuff
    } else{
        // do other stuff
    }
    
    0 讨论(0)
  • 2021-01-23 05:31

    RecyclerView can't scroll anymore when the item at last position is completely visible.

    In condition that would sound as:

    mRecyclerView.getLayoutManager().findLastCompletelyVisibleItemPosition() == mRecyclerViewAdapter.getItemCount() - 1;
    
    0 讨论(0)
提交回复
热议问题