添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

禁用notifyItemRangeInserted()上的动画。

37 人关注

我正在使用一个RecyclerView。在向RecyclerView添加项目后,我需要调用。

notifyItemRangeInserted(int positionStart, int itemCount);

然而,这显示了一种 "向下滑动 "的动画。有什么办法可以让我禁用这个动画吗?

android
android-recyclerview
android-animation
d84619
d84619
发布于 2017-06-01
3 个回答
Matthew Shearer
Matthew Shearer
发布于 2022-07-08
已采纳
0 人赞同

尝试清除 RecyclerView 项目的动画器

recyclerView.setItemAnimator(null);

如果需要,你可以在之后重新启用你的动画。

recyclerView.setItemAnimator(null);
notifyItemRangeInserted(int positionStart, int itemCount);
recyclerView.setItemAnimator(new DefaultItemAnimator());
    
那么ViewPager2呢?
Chrisser000
Chrisser000
发布于 2022-07-08
0 人赞同

你也可以像这样在你的xml布局文件中用数据绑定来做。

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:itemAnimator="@{null}" />

这是可能的,因为RecyclerView有一个名为setItemAnimator的公共函数!

Javad B
Javad B
发布于 2022-07-08
0 人赞同

我正在使用ListAdapter,Matthew的解决方案对我不起作用,当我重新启用动画时,它又开始活跃起来。如果有人需要,我就用这个(Kotlin)。

recyclerView.itemAnimator = null