【问题标题】:How to add child click listener to any child item manneohlund smart-recycler-adapter如何将子点击监听器添加到任何子项 manneohlund smart-recycler-adapter
【发布时间】:2021-02-24 14:23:10
【问题描述】:

我正在将此库用于通用适配器 -> Smart-Recycler-Adapter

这是我的代码

 SmartRecyclerAdapter
        .items(listItems)
        .map(Header::class, HeaderViewHolder::class)
        .map(KeyVal::class, KeyValViewHolder::class)
        .map(KeyLink::class, KeyLinkViewHolder::class)
        .map(Picture::class, PictureViewHolder::class)
        .add(StickyHeaderItemDecorationExtension(
            headerItemType = Header::class
        ))
            .add(OnCustomViewEventListener { event ->
                showToast(event)
            })
        .into<SmartRecyclerAdapter>(binding.recyclerview)

我可以将点击监听器添加到整个 recyclerview 项目。但我想在我的一个视图持有者的子视图上添加点击监听器。我在自己的自定义适配器上做过很多次,但我不知道如何使用这个库来添加这个功能。谢谢你

【问题讨论】:

  • 在viewholder的视图中添加点击监听器

标签: android kotlin android-recyclerview


【解决方案1】:

您可以在各自的 Viewholders 中为 itemView(列表中特定项目的视图)添加侦听器。

例如,在您的 PictureViewHolder 类中,您必须有一个视图实例,它代表列表中单个项目的视图。您可以在此视图中设置点击监听器,然后执行您希望在点击时执行的任何操作。

例如,如果您的 Viewholder 类看起来像这样

inner class PictureViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) {

 fun bind(item: PictureClass) {
     itemView.setOnClickListener {
         // Do something
     }
   }
} 

【讨论】:

  • 是的,我结合这个库的自定义侦听器和它现在工作正常。谢谢你
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
相关资源
最近更新 更多