Как я могу изменить порядок своих предметов в программе переработчика, проводя пальцем вверх и вниз? - PullRequest
0 голосов
/ 19 февраля 2019

Я взял этот пример , чтобы поэкспериментировать с представлениями переработчика.В этом примере порядок решается путем установки явного номера приоритета.

Я хотел бы сделать заказ с помощью ВВЕРХ или ВНИЗ, проведя эти пункты на палец.

Поэтому я улучшил пример, добавив код к реализации 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, язаменены на жесты ВВЕРХ и ВНИЗ и добавлен код, где я провожу вручную.

Я больше ничего не трогал.Применяя вышеуказанные изменения, я могу запустить приложение на устройстве, но проведя пальцем вверх и вниз, не работает?

Что я забыл? Есть ли более простой способ?

...