我的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
答案 0 :(得分:2)
这不是我生命中最好的项目,但你可以找到一个下载此zip file的参考实现。它是一个Android Studio项目,基本上我已经使用过:
mPager.beginFakeDrag()
mPager.fakeDragBy(float val);
mPager.endFakeDrag();
结合动画来模拟ViewPager的平滑滚动。 ViewPager的默认DepthPageTransformer有5页。点击底部'点击我'按钮,页面添加到ViewPager,PageTransformer更改为FlipVerticalTransformer,并使用我之前提到的方法执行拖动。
我已经为代码制作了一些changes以实现VerticalSlide。我相信现在可以接受答案:)