0

我有一个RecyclerView,首先向下滚动,现在当我们向上滚动时,它达到最高点。我想检测一下,有什么办法吗?我有AppBar,其高度大于设备宽度。所以它会导致滚动。我认为通过获得顶部到达侦听器手动扩展AppBar,以避免一扔。检测RecyclerView的顶部?

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

这个代码我已经使用,但我的问题是,我不能把这个代码后,向上滚动RecyclerView。因为我的RecyclerView使用带有3列的GridLayoutManager。

+0

的可能的复制[?如何知道是否RecyclerView/LinearLayoutManager滚动到顶部或底部] (http://stackoverflow.com/questions/27841740/how-to-know-whether-a-recyclerview-linearlayoutmanager-is-scrolled-to-top-or-b) –

+0

我已编辑我的问题 –

回答

4

如果你有你的RecyslerView,你可以用它来寻找第一个可见项的LinearLayoutManager集:

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

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

这段代码我已经使用,但我的问题是,我不能向上滚动RecyclerView后这个代码。因为我的RecyclerView使用带有3列的GridLayoutManager。 –

+4

正确的方法名称是'findFirstCompletelyVisibleItemPosition'我猜 –

+0

'findFirstCompletelyVisibleItemPosition'将不起作用,如果您的项目比您的屏幕大(可以轻松地在小设备上发生) – Katharina

相关问题