Created
November 23, 2021 20:49
-
-
Save emedinaa/0f6e72fd587fe9e5cb002eaca2064f09 to your computer and use it in GitHub Desktop.
Recyclerview remove element with swipe event
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
//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