我正在尝试对RecyclerView
的商品进行滑动。
实施主要基于this。
背景:
当用户滑动视图时,它会移到正确的位置,但不会消失。 -确定
然后:当用户点击(不滑动)滑动项目时,将触发逃生动画(默认值)。 -确定
问题:该视图无法完全返回到默认位置。用户可以在屏幕右侧看到部分背景(如下所示)。 需要第二次点击才能将视图设置在正确的位置。 -不好
为了更好地演示行为,我创建了一个GIF。
关于ItemTouchHelper.SimpleCallback
的代码:
class SwipeCallback : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
override fun onMove(recyclerView: RecyclerView, viewHolder: ViewHolder, target: ViewHolder) =
false
override fun onChildDraw(
canvas: Canvas,
recyclerView: RecyclerView,
viewHolder: ViewHolder,
dX: Float,
dY: Float,
actionState: Int,
active: Boolean
) {
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
// SWIPE LEFT
if (dX < 0) {
// When transitionX is multiply by ~0.4f or lower value, view is displayed properly.
// Otherwise when user will "tap" the background will be shown.
// On the other hand if we do "proper" swipe to escape view will be displayed properly.
val transitionX = 0.7f * dX
super.onChildDraw(
canvas,
recyclerView,
viewHolder,
transitionX,
dY,
actionState,
active
)
}
}
}
override fun onSwiped(viewHolder: ViewHolder, direction: Int) {
}
}
Sample project来演示是否有人要对其进行测试。
答案 0 :(得分:-1)
您尝试过AndroidSwipeLayout
吗?已经有一个不错的库,我也可以在我的应用程序中使用它。
https://github.com/daimajia/AndroidSwipeLayout