Я взял этот пример , чтобы поэкспериментировать с представлениями переработчика.В этом примере порядок решается путем установки явного номера приоритета.
Я хотел бы сделать заказ с помощью ВВЕРХ или ВНИЗ, проведя эти пункты на палец.
Поэтому я улучшил пример, добавив код к реализации onMove()
в методе onCreate()
:
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP.or(ItemTouchHelper.DOWN), ItemTouchHelper.LEFT.or(ItemTouchHelper.RIGHT)) {
override fun onMove(
recyclerView: RecyclerView,
sourceHolder: RecyclerView.ViewHolder,
destinationHolder: RecyclerView.ViewHolder
): Boolean {
val posOld = sourceHolder.adapterPosition
val posNew = destinationHolder.adapterPosition
val note1 = adapter.getNoteAt(posOld)
val note2 = adapter.getNoteAt(posNew)
noteViewModel.delete(note1)
noteViewModel.delete(note2)
val prio1 = note1.priority
note1.priority = note2.priority
note2.priority = prio1
noteViewModel.insert(note1)
noteViewModel.insert(note2)
return true
}
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
noteViewModel.delete(adapter.getNoteAt(viewHolder.adapterPosition))
Toast.makeText(baseContext, "Note Deleted!", Toast.LENGTH_SHORT).show()
}
}
).attachToRecyclerView(recycler_view)
Как видите, первый параметр интерфейса SimpleCallback был 0, язаменены на жесты ВВЕРХ и ВНИЗ и добавлен код, где я провожу вручную.
Я больше ничего не трогал.Применяя вышеуказанные изменения, я могу запустить приложение на устройстве, но проведя пальцем вверх и вниз, не работает?
Что я забыл? Есть ли более простой способ?