android - 将 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,而是它当我们执行滑动时将是渐进的。有人可以帮我正确的指针吗?如果有人可以帮助我提供示例代码,我将不胜感激。
谢谢。
解决方案
您是否使用断点或日志检查了位置的值?也许它不符合您的预期值?
你应该检查这个 library的代码,看看它是如何工作的,它与 pagetransformer
推荐阅读
- python - 如何避免python中的额外换行?
- reactjs - TypeError: _this2.props.someFunciton 不是函数 - 反应
- r - 使用字符串访问正式的 R 类对象元素
- javascript - 如何通过单击切换特定的 JavaScript 函数?
- bash - sed 不能用特殊字符替换子字符串
- javascript - 当边缘附近的弧线扩大时,帆布会在外面留下“印记”
- google-apps-script - 在委托收件箱中创建草稿
- swift - 出队后,CALayer 在自定义 UITableViewCell NIB 上消失
- angular - 如何在 Angular 中使用 Azure Maps
- php - 带有 HTML 标签的 MySQL 文本分页