滚动 RecyclerView 以在顶部显示所选项目

新手上路,请多包涵

我正在寻找一种滚动 RecyclerView 以在顶部显示所选项目的方法。

ListView 我可以通过使用 scrollTo(x,y) 并获得需要居中的元素的顶部来做到这一点。

就像是:

 @Override
public void onItemClick(View v, int pos){
    mylistView.scrollTo(0, v.getTop());
}

问题是 RecyclerView 使用它时返回错误 scrollTo 方法说

RecyclerView 不支持滚动到绝对位置

如何滚动 RecyclerView 以将所选项目放在视图顶部?

原文由 Distwo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 524
2 个回答

如果您使用的是 LinearLayoutManager 或 Staggered GridLayoutManager ,则它们每个都有一个 scrollToPositionWithOffset 方法,该方法同时获取项目开始的位置和偏移量 RecyclerView ,这似乎可以满足您的需求(将偏移量设置为 0 应该与顶部对齐)。

例如:

 //Scroll item 2 to 20 pixels from the top
linearLayoutManager.scrollToPositionWithOffset(2, 20);

原文由 Niraj 发布,翻译遵循 CC BY-SA 4.0 许可协议

这很简单

recyclerView.scrollToPosition(position)

原文由 Tarif Chakder 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题