Skip to content

Instantly share code, notes, and snippets.

@emedinaa
Created November 23, 2021 20:49
Show Gist options
  • Save emedinaa/0f6e72fd587fe9e5cb002eaca2064f09 to your computer and use it in GitHub Desktop.
Save emedinaa/0f6e72fd587fe9e5cb002eaca2064f09 to your computer and use it in GitHub Desktop.
Recyclerview remove element with swipe event
//view
private val itemTouchHelper =
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
): Boolean = false
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val position = viewHolder.adapterPosition
adapter.getItem(position)?.let {
//remove from database
repository.delete(it.id, it) {
adapter.remove(it)
}
}
}
})
//adapter
private const val INVALID_POSITION = -1
fun remove(item: Note) {
val position = notes.indexOf(item)
if (position > INVALID_POSITION) {
notes.remove(item)
notifyItemRemoved(position)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment