当前,当用户在屏幕底部滑动时,我正在关闭屏幕底部的视图。问题是,当您向右滑动时,解雇动画看起来正确(朝右滑动方向)。
但是,当您向左滑动时,动画仍会向右滑动。
目标是允许在任一方向上滑动。
在我们自己的代码库中,我们从未定义解雇动画将在右侧进行。这只是默认情况下的简单方式,我在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秒时,您可以清楚地看到用户从右向左滑动,但是发卡动画从左向右移动
答案 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。 :)