BaseRecyclerViewAdapterHelper icon indicating copy to clipboard operation
BaseRecyclerViewAdapterHelper copied to clipboard

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

Open lmDai opened this issue 2 years ago • 1 comments

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); } }); 2. 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.快速点击时,程序提示未响应,导致卡死

lmDai avatar Nov 08 '22 02:11 lmDai

检查 convert 中是否有耗时操作

limuyang2 avatar May 30 '23 03:05 limuyang2