如何以编程方式滚动到 Recycler View 的底部?

13
我想在点击按钮时滚动到RecyclerView的底部,我该怎么做? 答案:

我该如何在点击按钮时滚动到Recycler View的底部?

2个回答

33

你需要利用 LayoutManager 来实现。按照以下步骤进行。

1). 首先,在你的 Activity/Fragment 中声明 LayoutManager。例如,我使用了 LinearLayoutManager

private LinearLayoutManager mLinearLayoutManager;

2). 初始化 LinearLayoutManager 并将其设置为您的 RecyclerView

mLinearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(mLinearLayoutManager);

3). 在您的Button onClick中,执行以下操作以滚动到您的RecyclerView底部。

mLinearLayoutManager.scrollToPosition(yourList.size() - 1); // yourList is the ArrayList that you are passing to your RecyclerView Adapter.

希望这能对您有所帮助..!!


3
应该使用mLinearLayoutManager.scrollToPosition(yourList.size() - 1)来滚动到列表的底部。 - Eliseo Ocampos
2
如果回收视图元素很大(例如图片),则仅在项目开始时显示。因此,这不是真正的滚动到底部(我仍然可以手动滚动更多)。 - Alex
@Alex 不工作了!列表项中的图像是原因吗? - Arnold Brown
1
@ArnoldBrown 不是问题。问题在于 scrollToPosition() 滚动到最后一个元素的顶部,而需要滚动到最后一个元素的底部。 - Alex

3

1
根据文档,“RecyclerView不实现滚动逻辑,而是将调用转发到scrollToPosition(int)”。它不实现逻辑,仅调用此函数将不起作用。 - hjchin
2
非常抱歉,在仔细看之后,它能够正常工作。 - hjchin
与先前的答案相同 - 如果回收视图元素很大(例如图像),则仅在项目开始时显示。因此,这不是真正的滚动到底部(我仍然可以手动滚动更多)。 - Alex
这个不起作用。列表项中的图像是原因吗? - Arnold Brown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接