我的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:已附加更改
这不是我一生中最好的项目,但是您可以找到下载此zip文件的参考实现。这是一个我基本上使用过的Android Studio项目:
mPager.beginFakeDrag()
mPager.fakeDragBy(float val);
mPager.endFakeDrag();
结合Animation来模拟ViewPager的平滑滚动。ViewPager具有一个默认的DepthPageTransformer 5页。当您单击底部的“单击我”按钮时,会将页面添加到ViewPager,将PageTransformer更改为FlipVerticalTransformer,并使用我之前提到的方法执行拖动。
为了实现VerticalSlide,我对代码进行了一些更改。我相信答案现在可以被接受:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句