【发布时间】:2020-01-22 18:58:25
【问题描述】:
我查阅了许多关于 RecyclerView 的滑动功能的教程。当我附加 ItemTouchHelper 时,它对 ViewHolder 没有影响。
我在 onSwiped 方法中放置了一个断点,但是当我尝试滑动时它甚至没有到达那里。我做了一个新项目,只是用一些视图持有者实现了一个随机的 recyclerview。我附加了 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))
但它似乎仍然不起作用。可能出了什么问题?
【问题讨论】:
标签: android kotlin android-recyclerview