【问题标题】:Detect the top of RecyclerView?检测 RecyclerView 的顶部?
【发布时间】:2017-05-25 19:54:23
【问题描述】:

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

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

这个代码我已经使用过了,但我的问题是我在放置这个代码后无法向上滚动 RecyclerView。因为我的 RecyclerView 使用 GridLayoutManager 和 3 列。

【问题讨论】:

标签: android android-recyclerview android-appbarlayout onscrolllistener


【解决方案1】:

如果您在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' 如果你的项目比你的屏幕大(在小型设备上很容易发生),'findFirstCompletelyVisibleItemPosition' 将不起作用
猜你喜欢
  • 1970-01-01
  • 2015-04-20
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多