背景
有时,recyclelerView的所有项目都已对用户可见.
在这种情况下,用户看到过度滚动效果并不重要,因为实际滚动和查看更多项目是不可能的.
问题
我知道为了在RecyclerView上禁用过度滚动效果,我可以使用:
recyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
但无论如何都无法滚动,我无法找到何时触发此功能.
这个问题
如何确定所有项目完全可见并且用户无法真正滚动?
如果它有助于假设任何东西,我总是使用LinearLayoutManager(垂直和水平)为RecyclerView.
解决方法
你可以尝试OVER_SCROLL_IF_CONTENT_SCROLLS.根据文件
Allow a user to over-scroll this view only if the content is large
enough to meaningfully scroll,provided it is a view that can scroll.
或者您可以检查是否有足够的项目来触发滚动并启用/禁用过滚动模式,具体取决于它.例如
boolean notAllVisible = layoutManager.findLastCompletelyVisibleItemPosition() < adapter.getItemCount() - 1; if (notAllVisible) { recyclerView.setOverScrollMode(allVisible ? View.OVER_SCROLL_NEVER); }