Android 检测RecyclerView的顶部?

Android 检测RecyclerView的顶部?,android,android-recyclerview,android-appbarlayout,onscrolllistener,Android,Android Recyclerview,Android Appbarlayout,Onscrolllistener,我有一个RecyclerView,首先它向下滚动,现在当我们向上滚动时,它到达最顶端。我想检测一下,有什么办法吗?我有一个AppBar,它的高度大于设备宽度。因此,它引起了一场对卷轴的轰动。我认为,通过让顶级听众手动扩展AppBar来避免抛出 if (layoutManager.firstCompletelyVisibleItemPosition() == 0) { //this is the top of the RecyclerView } 这段代码我已经用过了,

我有一个RecyclerView,首先它向下滚动,现在当我们向上滚动时,它到达最顶端。我想检测一下,有什么办法吗?我有一个AppBar,它的高度大于设备宽度。因此,它引起了一场对卷轴的轰动。我认为,通过让顶级听众手动扩展AppBar来避免抛出

    if (layoutManager.firstCompletelyVisibleItemPosition() == 0) {
    //this is the top of the RecyclerView 
    }

这段代码我已经用过了,但我的问题是,我不能在放入这段代码后向上滚动RecyclerView。因为my RecyclerView使用具有3列的GridLayoutManager。

如果在
RecyclerView
上设置了
LinearLayoutManager
,则可以使用它查找第一个可见项:

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

if (layoutManager.firstCompletelyVisibleItemPosition() == 0) {
    //this is the top of the RecyclerView
    //Do Something
}

可能与我编辑的问题重复此代码我已经使用过,但我的问题是在放置此代码后无法向上滚动RecyclerView。因为我的RecyclerView使用的GridLayoutManager有3列。正确的方法名称是
findFirstCompletelyVisibleItemPosition
,我想如果您的项目比屏幕大,“findFirstCompletelyVisibleItemPosition”将不起作用(在小型设备上很容易发生)