2 android android-recyclerview
大家好,我被困在这里需要帮助:
每个项目都有一个CheckBox
和我setOnLongClickListener
为我的项目的根元素设置RecyclerView
如下:
holder.faviorateVideoItemRelative.setOnLongClickListener(new View.OnLongClickListener() {
public boolean onLongClick(View arg0) {
if (chk_visible)
{
return true ;
}
holder.chk_faviorateVideo.setChecked(!holder.chk_faviorateVideo.isChecked());
chk_visible = true ;
checkedItemsCNT = 1 ;
deleteListVideoCourses.add(data.get(holder.getAdapterPosition())) ;
notifyDataSetChanged() ;
return true ;
}
});
Run Code Online (Sandbox Code Playgroud)
如果我向下滚动,当我长按其中一个项目时,CheckBox
会检查错误的项目!
小智 8
这是因为当您使用RecycleView
它时,每次滚动时都会重复使用您的视图.RecycleView
像这样重用你的资源
因此,当您滚动它时,您的视图显示错误状态
如果您为登记编写任何逻辑,onBindViewHolder
则必须同时使用true和false
if(yourCondition){
//code if condition is true
}else {
//code if condition is false
}
Run Code Online (Sandbox Code Playgroud)
只需使用一个语句就可以解决它,以阻止您RecycleView
重复使用这样的视图状态
@Override
public void onBindViewHolder(ReqNotificationAdapter.MyViewHolder holder, int position) {
holder.setIsRecyclable(false);
//.................your other code
}
Run Code Online (Sandbox Code Playgroud)
我用它来解决我的问题..希望它能解决你的问题,如果你没有问题停止回收你的目的.
归档时间: |
|
查看次数: |
1630 次 |
最近记录: |