如何知道 RecyclerView 是否有足够的内容可以滚动?

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

目前我正在使用 RecyclerView 和 LinearLayout Manager 以及 EditText 作为 HeaderView 来过滤列表的内容。

如果 RecyclerView 的内容小于 RecyclerView 本身,我想隐藏 EditText。

如果 Recyclerview 或 LayoutManager 的内容可以滚动,有什么方法可以 "ask" 吗?

谢谢大家

你是这个意思吗:

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

if(recyclerView.getLayoutManager().canScrollVertically()){
    // do stuff
} else{
    // do other stuff
}
当最后位置的项目完全可见时,

RecyclerView 无法再滚动。

在这样的情况下:

mRecyclerView.getLayoutManager().findLastCompletelyVisibleItemPosition() == mRecyclerViewAdapter.getItemCount() - 1;

一个也考虑了动态屏幕尺寸的答案。

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();
}