CymChad / BaseRecyclerViewAdapterHelper

BRVAH:Powerful and flexible RecyclerAdapter
http://www.recyclerview.org/
MIT License
24.3k stars 5.15k forks source link

mAdapter.notifyItemChanged(position,ITEM_0_PAYLOAD) 程序未响应 #3713

Open lmDai opened 1 year ago

lmDai commented 1 year ago

1.mAdapter.setOnItemChildClickListener((adapter, view, position) -> { if (view.getId() == R.id.tv_copy) { BaseAppUtil.copyToSystem(BankCardActivity.this, mAdapter.getItem(position).bankNo); } else if (view.getId() == R.id.tv_detail) { mViewModel.toBankDetail(mAdapter.getItem(position).accountId); } else if (view.getId() == R.id.cash_checked) { HomeBankBean.ListBean item = mAdapter.getItem(position); item.hide = !item.hide; mAdapter.getData().set(position, item); mAdapter.notifyItemChanged(position, BankCardAdapter.ITEM_0_PAYLOAD); } });

  1. public BankCardAdapter() { super(R.layout.adapter_member_bankcard); addChildClickViewIds(R.id.tv_copy, R.id.tv_detail, R.id.cash_checked); }

    @Override protected void convert(@NotNull BaseViewHolder holder, HomeBankBean.ListBean item) { holder .setText(R.id.tv_member_bankname, item.bankName) .setText(R.id.tv_member_mantissa, item.hide ? item.bankNo : BaseAppUtil.bankFormat(item.bankNo)) .setText(R.id.tv_member_bankfrom, item.bankType) .setGone(R.id.tv_detail, item.hasDetail == 0) .setImageResource(R.id.cash_checked, item.hide ? R.drawable.eyes_main_open : R.drawable.eyes_main_close); GlideUtil.loadImage(getContext(), item.bankIcon, holder.getView(R.id.iv_member_form)); CardView cardView = holder.getView(R.id.cv_bankcard); try { cardView.setCardBackgroundColor(Color.parseColor(BaseAppUtil.getBankColor(item.bankColor))); } catch (Exception e) { e.printStackTrace(); } }

    public static final int ITEM_0_PAYLOAD = 1;

    @Override protected void convert(@NotNull BaseViewHolder holder, HomeBankBean.ListBean item, @NotNull List<?> payloads) { for (Object p : payloads) { int payload = (int) p; if (payload == ITEM_0_PAYLOAD) { holder.setImageResource(R.id.cash_checked, item.hide ? R.drawable.eyes_main_open : R.drawable.eyes_main_close) .setText(R.id.tv_member_mantissa, item.hide ? item.bankNo : BaseAppUtil.bankFormat(item.bankNo)); } } } 3.快速点击时,程序提示未响应,导致卡死

limuyang2 commented 1 year ago

检查 convert 中是否有耗时操作