Android View以错误的方向关闭动画

时间:2019-06-10 19:30:55

标签: android android-animation swipe

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

但是,当您向左滑动时,动画仍会向右滑动。

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

在我们自己的代码库中,我们从未定义解雇动画将在右侧进行。这只是默认情况下的简单方式,我在SwipeDismissBehavior文档(https://jsfiddle.net/m1ax4nsg/11/)中找不到任何可以改变这一点的内容。

这里只是代码块外观的一小段。我希望有某种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://developer.android.com/reference/android/support/design/widget/SwipeDismissBehavior

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

1 个答案:

答案 0 :(得分:0)

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。 :)