ViewPager2 堆栈 PageTransform
ViewPager2 Stack PageTransform
我需要一些有关 ViewPager2 的 PageTransformer 的帮助。
我的 ViewPager2 中有 3 个页面。
每一页都应该与下一页重叠。
另外,所有的页面都应该稳固地在中间,只能滑动到一边。
示例:
第 1 页:蓝色
第2页:紫色
第 3 页:绿色
第 1 页与第 2 页重叠,第 2 页与第 3 页重叠。
我把currentItem设置为2先看到第3页
您可以看到绿色页面,如果将其向右推,您应该可以看到紫色页面(即使在推的同时)
如果您然后将紫色页面向右推,您应该会看到蓝色页面
而且页面不应该移动(当然除了一边)
Something similar to this 但重叠是相反的,因为我从第 3 页开始并且没有更改缩放比例。 (alpha 变化 完全没问题, 想要)
我希望有人能帮助我并提前致谢
经过几个小时的尝试,我得到了想要的结果
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
}
}
}
}
}
我需要一些有关 ViewPager2 的 PageTransformer 的帮助。
我的 ViewPager2 中有 3 个页面。 每一页都应该与下一页重叠。 另外,所有的页面都应该稳固地在中间,只能滑动到一边。
示例:
第 1 页:蓝色
第2页:紫色
第 3 页:绿色
第 1 页与第 2 页重叠,第 2 页与第 3 页重叠。
我把currentItem设置为2先看到第3页
您可以看到绿色页面,如果将其向右推,您应该可以看到紫色页面(即使在推的同时) 如果您然后将紫色页面向右推,您应该会看到蓝色页面 而且页面不应该移动(当然除了一边)
Something similar to this 但重叠是相反的,因为我从第 3 页开始并且没有更改缩放比例。 (alpha 变化 完全没问题, 想要)
我希望有人能帮助我并提前致谢
经过几个小时的尝试,我得到了想要的结果
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
}
}
}
}
}