检测RecyclerView的顶部?

Bin*_*aby 2 android onscrolllistener android-recyclerview android-appbarlayout

我有一个RecyclerView,首先它向下滚动,现在当我们向上滚动时,它达到最高点.我想检测一下.有什么办法吗?我有AppBar,其高度大于设备宽度.因此它会导致滚动.我想通过顶部达到听众手动扩展AppBar以避免投掷.

    if (layoutManager.firstCompletelyVisibleItemPosition() == 0) {
    //this is the top of the RecyclerView 
    }
Run Code Online (Sandbox Code Playgroud)

这个代码我已经使用但我的问题是我在放入此代码后无法向上滚动RecyclerView.因为我的RecyclerView使用GridLayoutManager有3列.

gsb*_*gsb 7

如果你LinearLayoutManager有一套,RecyclerView你可以用它来找到第一个可见的项目:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerview.setLayoutManager(layoutManager);

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) {
    //this is the top of the RecyclerView
    //Do Something
}
Run Code Online (Sandbox Code Playgroud)

  • 正确的方法名称是`findFirstCompletelyVisibleItemPosition`我猜 (6认同)
  • 如果您的项目大于屏幕,“findFirstCompletelyVisibleItemPosition”将不起作用(在小型设备上很容易发生) (2认同)