如何将视图设置为recyclerview中的最后一项

时间:2016-06-29 10:33:07

标签: android android-recyclerview

我正在聊天室显示消息列表,并且我正在使用 RecycleView 进行显示。我希望将视图设置为最近的消息(最后一条消息,列表中的最后一项)而不是第一项。我使用 smoothScrollToPosition ,但我不希望列表从头到尾滚动以查看最近的消息。我希望它像 whatsapp 一样,当点击聊天时会显示上一条消息的视图。我怎样才能做到这一点?

request

2 个答案:

答案 0 :(得分:7)

设置setReverseLayout=true,以便LayoutManager从最后布置项目。

这样的事情:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(linearLayoutManager);

编辑:这将反转数据顺序,但不会将RecyclerView滚动到最后一项。为了保持数据顺序相同,只需将RecyclerView滚动到最后一个项集setStackFromEnd=true

样品:

LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(linearLayoutManager);

答案 1 :(得分:2)

使用 RecyclerView LayoutManager 滚动位置

的项目
recyclerView.getLayoutManager().scrollToPosition(messageList.size()-1);

你很高兴