将 Alpha 页面转换器应用于 ViewPager

Applying Alpha page transformer to ViewPager

我正在实施 ViewPager Transformer,其中,当我们在 viewpager 中滑动时,文本 Alpha 应该从 0.3f(未选择的页面)到 1.0f(已选择的页面)缓慢转换。

这是期望的输出。 Viewpager Transformation image

由于我是 Android 的新手,我尝试了以下方法,基本上我对应用什么公式感到困惑。

public class AlphaTextTransformer implements ViewPager.PageTransformer {

 public void transformPage(@NonNull View view, float position) {
  int pageWidth = view.getWidth();
  if (position < -1) { // [-Infinity,-1)
   // This page is way off-screen to the left.
   view.setAlpha(0.3 f);

  } else if (position <= 0) { // [-1,0]
   // Use the default slide transition when moving to the left page
   view.setAlpha(0.3 f);

  } else if (position <= 1) { // (0,1]
   // Fade the page out.
   view.setAlpha(0.3 f + Math.abs(position));

  } else { // (1,+Infinity]
   // This page is way off-screen to the right.
   view.setAlpha(0.3 f);
  }
 }
}

我在 time.Left 屏幕上显示了 3 个页面,右侧页面部分显示为 0 的文本 alpha 值。3f.Center 页面文本的 alpha 值为 1。我不想立即将 alpha 值设置为 1,但它会随着我们执行滑动而渐进。有人可以帮我提供正确的指针吗?如果有人可以帮助我提供示例代码,我将不胜感激。

谢谢。

你用断点或日志检查postion的值了吗?也许它不符合你的期望值?

您应该检查 this library 的代码,看看它是如何工作的,它与 pagetransformer