我正在使用RecyclerView构建聊天应用并显示消息。由于这是一个聊天应用程序,最后的消息应该出现在列表的底部。为此,我按以下方式使用LinearManager:
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
layoutManager.setStackFromEnd(true);
layoutManager.setSmoothScrollbarEnabled(false);
如果对话中有很多消息,它可以正常工作。但是,如果用户之间只有一条或两条消息,则RecyclerView会在屏幕底部显示这些消息,并在其上方放置空白区域。
在这种情况下,是否可以在屏幕顶部显示回收物品?
答案 0 :(得分:7)
我创建了一切正常并添加了std::uniform_int_distribution
,setStackFromEnd(true)
,并使用此方法将列表设置为底部,当它有很多itens时,recyclelerview将从底部开始,否则它将会离开即使屏幕尺寸小于屏幕尺寸,也可以显示顶部的评论。
setReverseLayout(true)
RecyclerView Java
//method will set the recyclerview to the end, in other words its going to the
//end of the recyclerview, starting from the bottom.
//call scrollToBottom() after add your items in the adapter
public void scrollToBottom(){
recyclerView.scrollVerticallyTo(0);
}
RecyclerView XML
RecyclerView recyclerView = (RecyclerView) findViewById(R.id.activity_comments_recycler_view);
LinearLayoutManager manager = LinearLayoutManager(this);
manager.setStackFromEnd(true);
manager.setReverseLayout(true);
recyclerView.setLayoutManager(manager);