以前,当我想将ListView
滚动到所需位置时,我将使用
listView.setSelection(row);
ListView
将滚动,不显示任何动画-Android List View set default position without animation
现在,我想在RecyclerView
上实现同样的效果。
((LinearLayoutManager)recyclerView.getLayoutManager()).scrollToPositionWithOffset(row, 0);
但是,有滚动动画,我想避免。
有没有什么方法可以编程地执行滚动,而不需要动画?
这就是我所指的动画-https://youtu.be/OKsUKwBLoks
注意,我已经尝试了以下方法。它们都可以生成动画。
- scrollToPositionWithOffset
- 平滑滚动到位置
- 滚动到位置
5条答案
按热度按时间pbossiut1#
我知道我的回答有点晚了,但它可能会帮助其他人。尝试以下操作(至少我在使用它时看不到任何动画):
Kotlin:
Java:
gzszwxb42#
在layout.xml中添加此行
编辑:
滚动recycleview的另一种方式
yqlxgs2m3#
您可以使用以下命令滚动而不显示动画:
v8wbuo2f4#
当您同时调用
notifyItemInserted()
和scrollToPosition()
时,可以很容易地重新生成。动画是由RecyclerView默认项目animator类中的
DefaultItemAnimator
引起的。我发现Youtube video是由其他人重新产生的问题。
我也有办法:
scrollToPosition()
滚动到最后位置。notifyItemInserted()
和scrollToPosition()
。我有一个用c#编写的代码示例,但它用lambda表达式对
Kotlin做了同样的事情。如果你需要在Adapter中访问RecyclerView,你可能需要看看
Adapter.onAttachedToRecyclerView()
。a7qyws3x5#
正如**@nyconing**在评论中所说,这种行为是由默认的
ItemAnimator
附加到回收器视图中引起的。只需删除它!