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

标签 android scroll android-recyclerview

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

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

类似:

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

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

RecyclerView does not support scrolling to an absolute position

如何滚动 RecyclerView 以将所选项目置于 View 顶部?

最佳答案

如果您使用的是 LinearLayoutManager 或交错 GridLayoutManager,它们每个都有一个 scrollToPositionWithOffset方法从 RecyclerView 的开头获取项目开始的位置和偏移量,这似乎可以完成您需要的操作(将偏移量设置为 0 应该与顶部对齐)。

例如:

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

关于android - 滚动 RecyclerView 以在顶部显示所选项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26875061/

相关文章:

java - 如何使用 arraylist 制作可扩展列表?

android - db.collection().document().get() 从不返回 null

android - 是否有 eclipse 插件来生成 findViewById 调用?

Qt - 在 QWidget 中滚动文本

android-studio - 滚动时选定的图像按钮会更改其在 recyclerView 中的位置

android - 在 RecyclerView 中设置计数器

android - 下载文件时内存不足

android - GCMRegistrar 无法解析

jquery - 使用外部 div 垂直滚动和内部 div 水平滚动,但也隐藏滚动条

javascript - 天气 App 每小时滚动效果