代码之家  ›  专栏  ›  技术社区  ›  Nishant Jalan

ItemTouchHelper不启动刷卡

  •  0
  • Nishant Jalan  · 技术社区  · 6 年前

    我在onswape方法中放置了一个put断点,但当我尝试滑动时,它甚至没有到达那里。我做了一个新项目,刚刚实现了一个带有一些视图持有者的随机回收视图。我附加了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))
    

    但似乎还是不起作用。可能出了什么问题?

    0 回复  |  直到 6 年前
        1
  •  0
  •   user146335    6 年前

    您向SimpleCallback提供了错误的参数

        val itemTouchHelper = object: SimpleCallback(0, LEFT and RIGHT) {
    

    相反,你应该

        val itemTouchHelper = object: SimpleCallback(0, LEFT or RIGHT) {