Created
June 6, 2018 09:15
-
-
Save RadiationX/0f95de43397849a51584737a14d2eeca to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
recyclerView.apply { | |
layoutManager = LinearLayoutManager(context) | |
adapter = this@ParkingVehicleFragment.adapter | |
val swipeHandler = ParkingVehicleItemDelegate.ItemTouchHelperExtensionCallback() | |
ItemTouchHelperExtension(swipeHandler).attachToRecyclerView(recyclerView) | |
} | |
class ItemTouchHelperExtensionCallback : ItemTouchHelperExtension.Callback() { | |
override fun getMovementFlags(recyclerView: RecyclerView?, viewHolder: RecyclerView.ViewHolder?): Int { | |
if (!(viewHolder is ViewHolder)) return 0 | |
return makeMovementFlags(0, ItemTouchHelper.START) | |
} | |
override fun onMove(recyclerView: RecyclerView?, viewHolder: RecyclerView.ViewHolder?, target: RecyclerView.ViewHolder?): Boolean { | |
return false | |
} | |
override fun onSwiped(viewHolder: RecyclerView.ViewHolder?, direction: Int) { | |
// nothing | |
} | |
override fun onChildDraw(c: Canvas?, recyclerView: RecyclerView?, viewHolder: RecyclerView.ViewHolder?, dX: Float, dY: Float, actionState: Int, isCurrentlyActive: Boolean) { | |
(viewHolder as? ViewHolder)?.itemView?.run { | |
itemCard.translationX = dX | |
var progress = Math.abs(dX / viewHolder.actionWidth) | |
progress = Math.min(progress, 1f) | |
itemBtnDelete.scaleX = progress | |
itemBtnDelete.scaleY = progress | |
} | |
} | |
} | |
Вьюхолдеру добавляешь интерфейс | |
private inner class ViewHolder(val view: View) : RecyclerView.ViewHolder(view), Extension | |
И в него добавляешь | |
override fun getActionWidth(): Float = view.itemBtnDelete.width.toFloat() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment