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