如何在RTL模式的view pager中实现立方体效果?

How to achieve cube effect in view pager in RTL mode?

我想在滑动ViewPager个片段时实现立方体动画效果。像这样:

我正在使用这段代码来实现:

class CubeOutTransformer : ViewPager2.PageTransformer {
    override fun transformPage(page: View, position: Float) {
        val deltaY = 0.5F

        page.pivotX = if (position < 0F) page.width.toFloat() else 0F
        page.pivotY = page.height * deltaY
        page.rotationY = 45F * position
    }
}

但是我现在的效果是这样的:

只有当我处于 RTL 模式时才会发生这种情况,而在 LTR 模式下一切正常。但是我想在RTL模式下实现那种效果。谁能帮我?谢谢

你需要扭转一些事情:

  • 条件从if (position < 0F)if (position > 0F)
  • Y方向的旋转从45F-45F
class CubeOutTransformerRTL : ViewPager2.PageTransformer {
    override fun transformPage(page: View, position: Float) {
        val deltaY = 0.5F

        page.pivotX = if (position > 0F) page.width.toFloat() else 0F
        page.pivotY = page.height * deltaY
        page.rotationY = -45F * position

    }
}

预览: