簡體   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