首页 > 解决方案 > 将 Alpha 页面转换器应用于 ViewPager

问题描述

我正在实现 ViewPager Transformer,当我们在 viewpager 中滑动时,Text Alpha 应该从 0.3f(Unselected Page) - 1.0f(Selected Page) 缓慢转换。

这是所需的输出。Viewpager 转换图像

由于我是 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);
  }
 }
}

我一次在屏幕上显示 3 页。左页和右页部分显示为 0.3f 的文本 alpha 值。中心页面文本的 alpha 值为 1。我不想立即将 alpha 值设置为 1,而是它当我们执行滑动时将是渐进的。有人可以帮我正确的指针吗?如果有人可以帮助我提供示例代码,我将不胜感激。

谢谢。

标签: androidandroid-viewpagertransform

解决方案


您是否使用断点或日志检查了位置的值?也许它不符合您的预期值?

你应该检查这个 library的代码,看看它是如何工作的,它与 pagetransformer


推荐阅读