【问题标题】:Android View dismiss animation in wrong directionAndroid View以错误的方向关闭动画
【发布时间】:2019-06-10 19:30:55
【问题描述】:

当用户在其上滑动时,我目前正在关闭屏幕底部的视图。问题是当您向右滑动时,解雇动画看起来是正确的(它朝右滑动的方向移动)。

但是,当您向左滑动时,动画仍会朝着向右滑动的方向进行。

目标是允许向任一方向滑动。

在我们自己的代码库中,我们从未定义解雇动画将向右移动。这只是默认情况下的方式,我在 SwipeDismissBehavior 文档 (https://developer.android.com/reference/android/support/design/widget/SwipeDismissBehavior) 中找不到任何改变它的内容。

这里只是快速了解代码块的外观。我希望有某种 setSwipeAnimationDirection() 方法之类的。甚至默认情况下动画遵循滑动方向,但似乎并非如此。

private fun initSwipeBehavior(view: View) {
        val swipe = DragAwareSwipeDismissBehavior()
        swipe.setSwipeDirection(SwipeDismissBehavior.SWIPE_DIRECTION_END_TO_START)
        swipe.setListener(object : SwipeDismissBehavior.OnDismissListener {
            override fun onDismiss(view: View) {
                viewModel.dismiss(true)

                //set the alpha value back to 1.0f so that mini player shows up the next time
                //it needs to be shown
                view.alpha = 1.0f
            }

            override fun onDragStateChanged(state: Int) {}
        })

        val coordinatorParams = view.layoutParams as LayoutParams
        coordinatorParams.behavior = swipe
    }

这是一个示例。 https://www.androhub.com/swipe-dismiss-cardview-with-coordinator-layout/

这不是我的视频,但在 15 秒时您可以清楚地看到用户从右向左滑动,但卡片关闭动画从左向右移动

【问题讨论】:

    标签: android android-animation swipe


    【解决方案1】:

    Omar,您可以在此处找到 SwipeDismissBehavior 常量的文档 https://developer.android.com/reference/com/google/android/material/behavior/SwipeDismissBehavior#swipe_direction_end_to_start SWIPE_DIRECTION_END_TO_START - 只允许在端到端方向上滑动的滑动方向。在 LTR 中是从右到左,在 RTL 中是从左到右。 为了您的目标(向任何方向滑动),也许您必须使用 SWIPE_DIRECTION_ANY。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 2012-10-03
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多