您好,登錄后才能下訂單哦!
在RecyclerView中,如果想要防止列表項點擊事件穿透到下方的視圖或布局,可以在列表項的點擊事件中消費掉點擊事件,使其不再向下傳遞。具體做法如下:
class MyAdapter(private val items: List<String>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textView: TextView = view.findViewById(R.id.textView)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.textView.text = items[position]
// 設置列表項的點擊事件
holder.itemView.setOnClickListener {
// 處理點擊事件
Toast.makeText(holder.itemView.context, "Item clicked: ${items[position]}", Toast.LENGTH_SHORT).show()
}
}
override fun getItemCount(): Int {
return items.size
}
}
holder.itemView.setOnClickListener {
Toast.makeText(holder.itemView.context, "Item clicked: ${items[position]}", Toast.LENGTH_SHORT).show()
// 消費掉點擊事件,不再向下傳遞
true
}
通過在點擊事件中返回true來消費掉點擊事件,從而防止事件繼續向下傳遞。這樣就可以避免RecyclerView列表項點擊事件穿透到下方的視圖或布局。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。