繁体   English   中英

ViewPager2 堆栈 PageTransform

[英]ViewPager2 Stack PageTransform

我需要一些有关 ViewPager2 的PageTransformer的帮助。

我的ViewPager2中有 3 页。 每一页都应与下一页重叠。 此外,页面都应该牢牢地在中间,并且只能向侧面滑动。



例子:
第 1 页:蓝色
第 2 页:紫色
第 3 页:绿色

第 1 页与第 2 页重叠,第 2 页与第 3 页重叠。

我已经通过将 currentItem 设置为 2 来设置第 3 页可以首先看到

你可以看到绿色页面,如果你把它推到右边,你应该能够看到紫色页面(即使在推动时)如果你把紫色页面推到右边,你应该看到蓝色页面并且页面不应该移动(当然旁边除外)

与此类似的东西,但反过来重叠,因为我从第 3 页开始并且没有更改缩放比例。 阿尔法变化是完全可以和想要的)

我希望有人可以帮助我并提前致谢

经过几个小时的尝试,我得到了想要的结果

class StackTransformer : ViewPager2.PageTransformer {
    override fun transformPage(view: View, position: Float) {
        view.apply {
            when {
                position < -1 -> {
                    alpha = 0f
                }
                position <= 0 -> {
                    alpha = 1 - position
                    translationX = width * -position
                    ViewCompat.setTranslationZ(this, -1f)
                }
                position <= 1 -> {
                    alpha = 1f
                    translationX = 0f
                    ViewCompat.setTranslationZ(this, 0f)
                }
                else -> {
                    alpha = 0f
                }
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM