Я просмотрел множество руководств по функциональности смахивания в RecyclerView.Когда я присоединяю ItemTouchHelper, он не влияет на ViewHolder.
Я поместил точку останова в метод onSwiped, но он даже не достигает там, когда я пытаюсь провести пальцем.Я сделал новый проект и только что реализовал случайное просмотрение с некоторыми держателями просмотров.Я прикрепил ItemTouchHelper, и у меня возникла та же проблема.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val model = ViewModelProviders.of(this)[ViewModel::class.java]
val dues = model.dues
val adapter = Adapter<Due>(R.layout.card_view_dues, fragmentManager!!)
dues.observe(this,
Observer<MutableList<Due>> {
adapter.list = it
}
)
val itemTouchHelper = object: SimpleCallback(0, LEFT and RIGHT) {
override fun onMove(
recyclerView: RecyclerView,
viewHolder: RecyclerView.ViewHolder,
target: RecyclerView.ViewHolder
) = false
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
dues.value?.removeAt(viewHolder.adapterPosition) //set breakpoint here
adapter.notifyDataSetChanged()
}
}
ItemTouchHelper(itemTouchHelper).attachToRecyclerView(recyclerView)
recyclerView.apply {
layoutManager = LinearLayoutManager(activity!!.applicationContext)
setHasFixedSize(false)
this.adapter = adapter
}
}
Я также заменил:
ItemTouchHelper(itemTouchHelper).attachToRecyclerView(recyclerView)
на
ItemTouchHelper(itemTouchHelper).attachToRecyclerView(activity!!.findViewById<RecyclerView>(R.id.recyclerView))
, но это все еще непохоже на работу.Что возможно пошло не так?