目前我正在使用一个带有LinearLayout Manager的RecyclerView和一个EditText作为HeaderView来过滤列表内容。
如果RecyclerView的内容小于RecyclerView本身,我想隐藏EditText。
是否有任何方法可以“询问”RecyclerView或LayoutManager是否其内容可以滚动?
谢谢大家。
目前我正在使用一个带有LinearLayout Manager的RecyclerView和一个EditText作为HeaderView来过滤列表内容。
如果RecyclerView的内容小于RecyclerView本身,我想隐藏EditText。
是否有任何方法可以“询问”RecyclerView或LayoutManager是否其内容可以滚动?
谢谢大家。
RecyclerView
在最后一个位置的item完全可见时无法滚动。
简单来说,就是当最后一个位置的item完全显示时,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();
}
if(recyclerView.getLayoutManager().canScrollVertically()){
// do stuff
} else{
// do other stuff
}
recyclerView.getLayoutManager().findLastCompletelyVisibleItemPosition() == adapter.getItemCount() -1;
- Nikola Despotoski
layout_height
设置为match_parent
,否则您将得到不同的高度(初始默认高度),因此最后一个可见元素的编号也会不同。 - Javatar