【发布时间】: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