单击项时recyclerview onbindview无法正常工作

wlp8pajw  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(400)

我尝试更新列表项重量代码工作正常

@NonNull
    @Override
    public viewlistx onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View xd = getLayoutInflater().inflate(R.layout.lay_yesno_list,parent,false);

        return new viewlistx(xd);
    }

    @Override
    public void onBindViewHolder(@NonNull  viewlistx holder, final int position) {

        btyesi = holder.btyes;

        holder.btyes.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.w("click","pos: " + position);
                LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) btyesi.getLayoutParams();
                params.weight = 2.0f;
                btyesi.setLayoutParams(params);
            }
        });

    }

    @Override
    public int getItemCount() {
        return 4;
    }

    public class viewlistx extends RecyclerView.ViewHolder{

        private final TextView btyes;

        public viewlistx(@NonNull View itemView) {
            super(itemView);
            btyes = itemView.findViewById(R.id.yesbtx);
        }
    }

}

但问题是,当我点击一个项目时,它会改变下一个项目的重量
例如,位置0单击位置1项目值更改或位置1单击位置2项目值更改
我做错什么了?

xu3bshqb

xu3bshqb1#

找到了一种方法来修复列表中的动画必须更改的使用值

holder

final holder

它的工作很好

相关问题