当前位置: 首页 > 面试题库 >

如何滚动到RecyclerView的底部?scrollToPosition不起作用

欧阳狐若
2023-03-14
问题内容

加载活动后,我想滚动到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)

这不起作用。中有30个元素GENERIC_MESSAGE_LIST


问题答案:

只需进行设置setStackFromEnd=truesetReverseLayout=true以使LLM可以从头开始布局项目。

两者之间的区别在于,setStackFromEnd将视图设置为显示最后一个元素,布局方向将保持不变。(因此,在从左到右的水平Recycler视图中,将显示最后一个元素,向左滚动将显示较早的元素)

setReverseLayout将更改适配器添加的元素的顺序。布局将从最后一个元素开始,该元素将在LTR回收器视图中最左侧,然后向右滚动将显示较早的元素。

样品:

final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setReverseLayout(true);
_listView.setLayoutManager(linearLayoutManager);


 类似资料:
  • 问题内容: 我正在使用Ajax请求创建聊天,并且试图使消息div滚动到底部没有太多运气。 我将所有内容包装在这个div中: 有没有一种方法可以使用JS将其默认滚动到底部? 有没有一种方法可以在ajax请求后将其滚动到底部? 问题答案: 这是我在网站上使用的内容:

  • 我有这个代码为回收人员视图。 我需要知道在滚动时RecyclerView何时到达最底部的位置。可能吗?如果是,怎么做?

  • 问题内容: 这是我的onCreate,它处理适配器,LinearLayoutManager等。我尝试了每个选项以尝试将其滚动到顶部,但不能。我什至尝试创建自己的自定义LinearLayoutManager。 问题答案: 您尝试过还是? RecyclerView不会在其中实现任何滚动逻辑,而是更加具体,它会根据实现的布局转到特定的索引,在您的情况下是线性的。

  • 问题内容: 我正在使用Rails中的Ajax请求创建聊天,并且试图使div滚动到底部没有太多运气。 我将所有内容包装在这个div中: 有没有一种方法可以使用JS将其默认滚动到底部? 有没有办法在ajax请求之后将其滚动到底部? 问题答案: 这是我在网站上使用的内容:

  • 问题内容: 我想构建一个聊天系统,并在进入窗口和收到新消息时自动滚动到底部。如何在React中自动滚动到容器的底部? 问题答案: 正如Tushar所提到的,您可以在聊天的底部保留一个虚拟div: 然后在组件更新时滚动到它(即,随着添加新消息而更新状态): 我在这里使用标准的Element.scrollIntoView方法。

  • 问题内容: 我需要将JScrollPane滚动到底部。JScrollPane包含一个JPanel,其中包含许多JLabel。 要滚动到顶部,我只需要: 但是如何精确滚动到最底端?(太远了,它抖动) 问题答案: