如何知道 RecyclerView 是否有足够的内容可以滚动?
How to know if a RecyclerView has enough content to scroll?
目前我正在使用 RecyclerView 和 LinearLayout Manager 以及 EditText 作为 HeaderView 来过滤列表的内容。
如果 RecyclerView 的内容小于 RecyclerView 本身,我想隐藏 EditText。
如果 Recyclerview 或 LayoutManager 的内容可以滚动,有什么方法可以 "ask" 吗?
谢谢大家
你是这个意思吗:
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();
}
目前我正在使用 RecyclerView 和 LinearLayout Manager 以及 EditText 作为 HeaderView 来过滤列表的内容。
如果 RecyclerView 的内容小于 RecyclerView 本身,我想隐藏 EditText。
如果 Recyclerview 或 LayoutManager 的内容可以滚动,有什么方法可以 "ask" 吗?
谢谢大家
你是这个意思吗:
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();
}