Check if RecyclerView is scrollable

后端 未结 9 1738
走了就别回头了
走了就别回头了 2021-02-02 10:21

How to check if a RecyclerView is scrollable, ie, there are items below/above the visible area

I have a dropdown in my recycler view which works by using

相关标签:
9条回答
  • 2021-02-02 10:57

    The idea is to check if the last completely visible element is the last element in the list.

    private boolean isScrollable()
    {
        return mLinearLayoutManager.findLastCompletelyVisibleItemPosition() + 1 ==
            mRecyclerViewAdapter.getItemCount();
    }
    
    0 讨论(0)
  • 2021-02-02 11:01
    boolean isScrollable() {
        LinearLayoutManager layoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager();
        int itemCount = mRecyclerView.getAdapter().getItemCount();
    
        return !(itemCount == 0 ||
        (layoutManager.findFirstCompletelyVisibleItemPosition() == 0 &&
        layoutManager.findLastCompletelyVisibleItemPosition() == itemCount - 1));
    }
    
    0 讨论(0)
  • 2021-02-02 11:02

    What about

    // 1 = down; -1 = up
    recyclerView.canScrollVertically(-1)
    

    If you want to check if there is any scrollable space, no matter which direction

    cardList.canScrollVertically(1) || cardList.canScrollVertically(-1)
    
    0 讨论(0)
提交回复
热议问题