You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RecyclerView条目点击事件失效:代码问题排查求助

RecyclerView条目点击无响应的解决方案

你的问题核心是没有给RecyclerView的条目根布局设置点击事件,也没有触发Adapter中定义的OnClickListener回调,以下是具体修复步骤:

1. 修改Adapter的onBindViewHolder方法

在onBindViewHolder中,把点击回调、当前条目数据和位置一起传递给ViewHolder的bind方法:

override fun onBindViewHolder(holder: BoardItemViewHolder, position: Int) {
    val model = list[position]
    holder.bindBoardItem(model, onClickListener, position)
}

2. 修改ViewHolder的bindBoardItem方法

更新bindBoardItem的参数,添加点击回调和位置,然后给条目根布局设置点击监听,触发回调:

fun bindBoardItem(model: Board, onClickListener: BoardItemsAdapter.OnClickListener?, position: Int){
    // 原有数据绑定代码不变
    binding.tvBoardName.text = model.name
    Glide.with(context).load(model.image).centerCrop().placeholder(R.drawable.ic_board).into(binding.ivBoardImage)    
    binding.tvCreatedBy.text = "Created by ${model.owner}"

    // 添加条目点击事件
    binding.root.setOnClickListener {
        onClickListener?.onClick(position, model)
    }
}

额外检查项

  • 检查item_board.xml布局文件:如果条目内有Button、ImageView等设置了android:clickable="true"的控件,会抢占根布局的点击事件。可以将这些控件的clickable属性改为false,或者单独处理它们的点击逻辑。
  • 确保RecyclerView本身没有被其他View遮挡,或者设置了android:clickable="false"(默认是false,一般没问题)。

这样修改后,点击RecyclerView的任意条目就能触发你在MainActivity中设置的点击回调,跳转到TaskList页面了。

内容的提问来源于stack exchange,提问作者Sina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:36:56