[英]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.