Nim*_*kai 5 android android-recyclerview
我正在尝试为RecyclerView的项目实现滑动。实现大多基于此。
背景:
当用户滑动视图时,它会移动到正确的位置,但不会消失。-好的
示例:在用户滑动的项目 2 下方。红色方块是视图背后的背景。

然后:当用户点击(不滑动)被滑动的项目时,会触发转义动画(默认)。- 好的
问题:视图没有完全回到默认位置。用户可以在屏幕右侧看到部分背景(如下所示)。它需要第二次点击才能将视图设置在正确的位置。- 不好

为了更好地展示行为,我创建了一个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) {
}
}
Run Code Online (Sandbox Code Playgroud)
演示是否有人感兴趣的示例项目。
Bio*_*tic -1
你试过了吗AndroidSwipeLayout?已经有一个非常好的库,我也在我的应用程序中使用它。
https://github.com/daimajia/AndroidSwipeLayout