在使用ViewBinding时,要在RecyclerView中突出显示单击的项目,可以通过以下步骤实现:
class MyAdapter(private val items: List<String>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val binding = ItemLayoutBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return ViewHolder(binding)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = items[position]
holder.bind(item)
}
override fun getItemCount(): Int {
return items.size
}
inner class ViewHolder(private val binding: ItemLayoutBinding) : RecyclerView.ViewHolder(binding.root) {
fun bind(item: String) {
binding.textView.text = item
binding.root.setOnClickListener {
// 点击事件处理逻辑
highlightItem(adapterPosition)
}
}
}
private fun highlightItem(position: Int) {
// 清除之前突出显示的项目
clearHighlightedItems()
// 突出显示当前点击的项目
val itemView = recyclerView.findViewHolderForAdapterPosition(position)?.itemView
itemView?.setBackgroundColor(Color.YELLOW)
}
private fun clearHighlightedItems() {
for (i in 0 until recyclerView.childCount) {
val itemView = recyclerView.getChildAt(i)
itemView.setBackgroundColor(Color.TRANSPARENT)
}
}
}
通过以上步骤,就可以在使用ViewBinding时,在RecyclerView中突出显示单击的项目。
领取专属 10元无门槛券
手把手带您无忧上云