来自recyclerView的项目更改了其滑动状态

时间:2018-10-25 15:48:12

标签: android android-recyclerview

我的recyclerView出现问题,我刚刚在onBindViewHolder中添加了一种方法,该方法检查项目的状态是否为“ T”,是否已将某些布局设置为“可见性”并更改背景颜色。

最开始的时候一切正常,但是,如果我轻扫该项目,然后轻扫一个法线,则正常的就成为状态为“ T”的项目。

以下是gif中的示例

enter image description here

这就是我在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(位置);                      “

0 个答案:

没有答案