1、问题
我想在以下代码中mDatas.size()-1 == i
的时候修改对应组件的属性参数,但是在修改第23项的时候,第8项也被修改了
@Override
public void onBindViewHolder(final ViewHolder viewHolder, final int i)
{
if (mDatas.size()-1 != i ){
viewHolder.textView.setText(mDatas.get(i));
}else {
ivContent = viewHolder.ivContent;
viewHolder.textView.setText("");
viewHolder.editText.setVisibility(View.INVISIBLE);
viewHolder.cycleItem.setLayoutParams(new ViewGroup.LayoutParams(150, 150));
//可以在这儿设置默认图片
//viewHolder.ivContent.setBackgroundResource(R.drawable.camera);
}
}
2、解决方案
- 设置被丢弃前缓冲池中存放的最大ViewHolders数量
- 设置将视图返回到常规回收视图池之前要缓存到屏幕外的视图数
mRecyclerView.getRecycledViewPool().setMaxRecycledViews(0, 20);
mRecyclerView.setItemViewCacheSize(20);