繁体   English   中英

禁用 ViewPager2 项目动画器

[英]Disable ViewPager2 item animator

我将 ViewPager2 与 ListAdapter 一起使用。 每次数据集发生变化时,viewpager2 的项目都会显示 animation。有什么办法可以禁用它吗? 在recyclerview中,我们可以通过设置recyclerview.itemAnimator = null来禁用,但是viewpager2呢?

找到解决此问题的方法:设置一个空的PageTransformer

managementView.pager.setPageTransformer { p0, p1 -> }

通过查看 ViewPager2 实现,不幸的是,这似乎是将内部 RecyclerView 的动画师设置为 null 的唯一方法。

public void setPageTransformer(@Nullable ViewPager2.PageTransformer transformer) {
        if (transformer != null) {
            if (!this.mSavedItemAnimatorPresent) {
                this.mSavedItemAnimator = this.mRecyclerView.getItemAnimator();
                this.mSavedItemAnimatorPresent = true;
            }

            this.mRecyclerView.setItemAnimator((ItemAnimator)null);
        } else if (this.mSavedItemAnimatorPresent) {
            this.mRecyclerView.setItemAnimator(this.mSavedItemAnimator);
            this.mSavedItemAnimator = null;
            this.mSavedItemAnimatorPresent = false;
        }

        if (transformer != this.mPageTransformerAdapter.getPageTransformer()) {
            this.mPageTransformerAdapter.setPageTransformer(transformer);
            this.requestTransform();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM