【问题标题】:How to acheive cube effect in view pager in RTL mode?如何在 RTL 模式下的 viewpager 中实现立方体效果?
【发布时间】:2021-06-26 13:41:10
【问题描述】:

我想在滑动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 模式下实现这种效果。谁能帮我?谢谢。

【问题讨论】:

    标签: java android kotlin android-viewpager android-viewpager2


    【解决方案1】:

    你需要扭转几件事:

    • if (position &lt; 0F)if (position &gt; 0F) 的条件
    • 45F-45F 的Y 方向旋转
    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
    
        }
    }
    

    预览:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      相关资源
      最近更新 更多