我的recyclerView出现问题,我刚刚在onBindViewHolder中添加了一种方法,该方法检查项目的状态是否为“ T”,是否已将某些布局设置为“可见性”并更改背景颜色。
最开始的时候一切正常,但是,如果我轻扫该项目,然后轻扫一个法线,则正常的就成为状态为“ T”的项目。
以下是gif中的示例
这就是我在onBind上所做的
final ItemPTERM item = mExampleList.get(position);
if(item.getState().equals("T")){
holder.qta.setVisibility(View.GONE);
holder.turno.setVisibility(View.GONE);
holder.turnoBox.setVisibility(View.GONE);
holder.desc.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
holder.desc.setTextColor(Color.parseColor("#FFFFFF"));
holder.itemView.setBackgroundColor(Color.parseColor("#2aaaff"));
}else {
if(position % 2 == 0 ){
holder.itemView.setBackgroundColor(Color.parseColor("#C0C0C0"));
}else if(position % 2 == 1){
holder.itemView.setBackgroundColor(Color.parseColor("#D3D3D3"));
}
}
DecimalFormat REAL_FORMATTER = new DecimalFormat("0.###");
holder.desc.setText(item.getBtnName());
holder.qta.setText(REAL_FORMATTER.format(item.getQuant()).replace(",", "."));
holder.turno.setText(String.valueOf(item.getTurno()));
holder.variantsContainer.removeAllViews();
// CREATING CHILD ITEM
List<Variant> variants = item.getVariants();
if (variants != null && variants.size() > 0){
for(Variant v : variants){
View vView = mInflater.inflate(R.layout.variant_layout,holder.variantsContainer,false);
TextView nameTV = vView.findViewById(R.id.variant_name);
nameTV.setText(v.getName());
nameTV.setBackground(v.getDrawable());
holder.variantsContainer.addView(vView);
}
}
在滑动时,我只是将项目设置为“ exampleAdapter.notifyItemChanged(位置); “