Linjiajia
2023-08-27 1df231fd6aafa221aef3532d069c7e27d4331be7
app_base/src/main/java/com/android/app_base/base/adapter/BaseRVAdapter.java
@@ -21,7 +21,7 @@
/**
 * @author Ljj
 * @date 2023.03.02. 17:09
 * @desc
 * @desc RecyclerView 适配器基类
 */
public abstract class BaseRVAdapter<T,VDB extends ViewDataBinding,VH extends BaseRVAdapter.BaseViewHolder<VDB>> extends RecyclerView.Adapter<VH> {
@@ -67,12 +67,12 @@
    @Override
    public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        VDB itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false);
        return getViewHolder(itemBind);
        return getViewHolder(itemBind,viewType);
    }
    protected abstract int getLayoutId();
    protected abstract void onBind(VH holder, int position);
    protected abstract VH getViewHolder(VDB itemBind);
    protected abstract VH getViewHolder(VDB itemBind,int viewType);
    @Override
    public void onBindViewHolder(@NonNull VH holder, int position) {
@@ -212,8 +212,10 @@
        if (mDataList == null || mDataList.size() == 0) {
            setData(data);
        } else {
            mDataList.addAll(data);
            notifyDataSetChanged();
            //一个一个的添加
            for (T datum : data) {
                addItem(datum);
            }
        }
    }
    /**
@@ -281,6 +283,7 @@
            position = mDataList.size() - 1;
        }
        notifyItemInserted(position);
        notifyItemRangeChanged(position, mDataList.size() - position);
    }
    /**
     * 删除单条数据
@@ -296,6 +299,7 @@
        mDataList.remove(position);
        // 告诉适配器删除数据的位置,会有动画效果
        notifyItemRemoved(position);
        notifyItemRangeChanged(position, mDataList.size() - position);
    }
    /**
     * 设置 RecyclerView 条目点击监听