首页 > 解决方案 > 带有 RecylcerView 的 Android Viewpager2,在应用 PageTransformer 时启用项目动画器

问题描述

我正在使用带有回收站视图的新 Viewpager2 来显示页面列表。要创建一个类似视图的堆栈,我正在使用ViewPager2.PageTransformer

我注意到,根据它的文档,ViewPager2.setPageTransformer()它统计了以下内容

注意:设置 ViewPager2.PageTransformer 会禁用数据集更改动画,以防止两个动画系统之间发生冲突。设置空转换器将恢复数据集更改动画。

因此,在添加页面转换器后,用于页面删除和页面添加的动画不再起作用

有什么办法可以克服这个

下面是实现的代码

页面转换器


public class VerticalStackViewPageTransformer implements ViewPager2.PageTransformer {
    int pageTranslationY ;

    public VerticalStackViewPageTransformer(int pageTranslationY) {
        this.pageTranslationY = pageTranslationY;
    }

    @Override
    public void transformPage(@NonNull View page, float position) {
        page.setTranslationY(-pageTranslationY * position);
        page.setScaleX(1 - (0.15f * abs(position)));
        page.setAlpha(0.65f + (1 - abs(position)));
    }
}

活动使用情况


 listViewPager.setAdapter(adapter);
 listViewPager.setOffscreenPageLimit(2);
 listViewPager.setPageTransformer(new VerticalStackViewPageTransformer(ContextHelper.dpToPixel(30,context)));

标签: androidandroid-recyclerviewandroid-viewpagerandroid-viewpager2

解决方案


推荐阅读