【发布时间】:2019-06-06 18:32:01
【问题描述】:
好吧,我现在正在与 Kotling 合作,我在 ViewHolderAdapter 内的 onBindViewHolder 中有一个侦听器,但是,这个侦听器的行为将应用于每 10 个位置。当我触摸该图像时,该行为只是使用滤色器更改图像颜色。很简单。
我尝试使用holder.setIsRecyclable(false),但是当回收器离开屏幕时,图像会变成正常设计,而不是更红。
这是我的ViewHolderAdapter
class ViewHolderAdapter(private var products:List<EachProduct>):RecyclerView.Adapter<ViewHolderAdapter.ViewHolder>(){
override fun onCreateViewHolder(parent:ViewGroup,viewType:Int):ViewHolder{
val view=LayoutInflater.from(parent.context).inflate(R.layout.recyclerview_layout,parent,false)
return ViewHolder(view)
}
override fun getItemCount():Int{
return products.size
}
override fun onBindViewHolder(holder:ViewHolder,position:Int){
//holder.setIsRecyclable(false)
holder.likeImage.setOnClickListener{
holder.likeImage.setColorFilter(Color.RED)
}
}
class ViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
var likeImage:ImageView=itemView.LikeImage
}
}
我预计只有被触摸的 RecyclerView 的图像会发生变化,而不是例如每 10 行发生一次。谁能给我一个关于如何在 RecyclerView 中的图像内设置侦听器的示例?
【问题讨论】:
-
RecyclerView在您滚动时回收视图。将选定的索引存储在变量中并在onBindViewHolder期间检查它。
标签: android kotlin android-recyclerview onclicklistener event-listener