具有多个PageTransformer的ViewPager(运行时的PageTransformers)

时间:2015-07-27 12:40:12

标签: android android-viewpager android-pagetransformer

我的ViewPager有自定义要求。我想要的是我的寻呼机默认情况下应该有一个水平的pageTransformer,如DepthPageTransformer。现在在屏幕上我有一个按钮,我希望我的当前页面从底部向上滑动,我的下一页将其替换为VerticalPageTransformer,并且一旦页面更改,页面转换器应该更改回DepthPageTransformer默认的。

所以基本上我想在运行时应用pageTransformers。任何帮助表示赞赏。

这是我的代码:

//sets intial page transformer
viewPager.setPageTransformer(false,new DepthPageTransformer());

现在,当我点击onCLick中的按钮时,我有:

//sets vertical page transformer
viewPager.setPageTransformer(false,new VerticalPageTransformer());
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);

然后在我的onPageSelected()中,我将其设置回初始的

@Override
public void onPageSelected(int position) {
    viewPager.setPageTransformer(false,new DepthPageTransformer());
}

这听起来很简单,但页面转换根本不顺利。他们表现得很奇怪。页面随时缩小。页面更改速度非常快,甚至无法看到转换。

编辑@Mimmo:更改attached

1 个答案:

答案 0 :(得分:2)

这不是我生命中最好的项目,但你可以找到一个下载此zip file的参考实现。它是一个Android Studio项目,基本上我已经使用过:

mPager.beginFakeDrag()
mPager.fakeDragBy(float val);
mPager.endFakeDrag();

结合动画来模拟ViewPager的平滑滚动。 ViewPager的默认DepthPageTransformer有5页。点击底部'点击我'按钮,页面添加到ViewPager,PageTransformer更改为FlipVerticalTransformer,并使用我之前提到的方法执行拖动。

我已经为代码制作了一些changes以实现VerticalSlide。我相信现在可以接受答案:)