我想在加载活动后滚动到 RecyclerView 列表的底部。
GENERIC_MESSAGE_LIST = (ArrayList) intent.getExtras().getParcelableArrayList(ConversationsAdapter.EXTRA_MESSAGE);
conversationView = (RecyclerView) findViewById(R.id.list_messages);
conversationView.setHasFixedSize(true);
conversationViewLayoutManager = new LinearLayoutManager(this);
conversationView.setLayoutManager(conversationViewLayoutManager);
conversationViewAdapter = new ConversationAdapter(GENERIC_MESSAGE_LIST, this);
conversationView.setAdapter(conversationViewAdapter);
conversationView.scrollTo(...)
抛出关于 RecyclerView 不受支持的异常,并且 conversationView.scrollToPosition(...)
似乎没有做任何事情。
在上面的代码块之后,我添加了
conversationView.scrollToPosition(GENERIC_MESSAGE_LIST.size() + 1)
这是行不通的。 GENERIC_MESSAGE_LIST
中有 30 个元素。
原文由 waylaidwanderer 发布,翻译遵循 CC BY-SA 4.0 许可协议
只需设置
setStackFromEnd=true
或setReverseLayout=true
以便 LLM 将从末尾开始布局项目。这两者之间的区别在于
setStackFromEnd
将视图设置为显示最后一个元素,布局方向将保持不变。 (因此,在从左到右的水平 Recycler View 中,将显示最后一个元素,向左滚动将显示较早的元素)而
setReverseLayout
将更改适配器添加的元素的顺序。布局将从最后一个元素开始,这将是 LTR Recycler View 中最左边的元素,然后向右滚动将显示较早的元素。样本:
有关详细信息,请参阅 文档。