如何更改垂直ViewPager滑动角度

问题描述 投票:0回答:1

我正在使用VerticalViewPager垂直滑动图像。垂直视图传呼机在滑动角度方面很严格,这意味着只有在完全垂直滑动时(x坐标不变),才可以继续滑动。

但是我在Inshorts应用程序(Inshorts)中观察到,即使滑动不完全垂直,它们也可以向上滑动。由于用户可能并不总是进行100%完美的刷卡,因此刷卡更加顺畅。

我们如何实现这一目标?

android android-viewpager android-viewpager2
1个回答
0
投票

您可以使用ViewPager.PageTransformer

只要可见/附加页面被调用,就会调用PageTransformer滚动。这为应用程序提供了机会使用动画属性对页面视图进行自定义转换。

ViewPager.PageTransformer

您可以使用 private class VerticalPageTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.75f; @Override public void transformPage(View view, float position) { if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page view.setAlpha(1); // Counteract the default slide transition view.setTranslationX(view.getWidth() * -position); //set Y position to swipe in from top float yPosition = position * view.getHeight(); view.setTranslationY(yPosition); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // [0,1] view.setAlpha(1); // Counteract the default slide transition view.setTranslationX(view.getWidth() * -position); // Scale the page down (between MIN_SCALE and 1) float scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position)); view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); } else { // (1,+Infinity] // This page is way off-screen to the right. view.setAlpha(0); } } }

© www.soinside.com 2019 - 2024. All rights reserved.