1.框架引入
app下的build.gradle中添加依赖
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.50'
项目的build.gradle中添加依赖
allprojects { repositories { maven { url "https://jitpack.io" } } }
2.创建Adapter
public class RecyclerListAdapter extends BaseQuickAdapter<RecyclerListBean, BaseViewHolder> { public RecyclerListAdapter(int layoutResId, @Nullable List<RecyclerListBean> data) { super(layoutResId, data); } @Override protected void convert(@NonNull BaseViewHolder helper, RecyclerListBean item) { helper.setText(R.id.tv_name, item.getName());//textview赋值 Glide.with(mContext).load(BaseUtil.HEAFERIMAGE+item.getProduct().getMainImg()).into((RoundedImageView)helper.getView(R.id.riv));//图片加载 //添加Item子控件的点击事件 helper.addOnClickListener(R.id.tv_name); } }
3.初始化Adapter
//开启动画效果
mAdapter.openLoadAnimation();
//设置动画效果
/**
* 渐显 ALPHAIN
* 缩放 SCALEIN
* 从下到上 SLIDEIN_BOTTOM
* 从左到右 SLIDEIN_LEFT
* 从右到左 SLIDEIN_RIGHT
*/
mAdapter.openLoadAnimation(BaseQuickAdapter.SCALEIN);
//设置Item点击事件
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
ToastUitl.showShort("onItemClick:" + position);
}
});
//设置Item长按事件
mAdapter.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
ToastUitl.showShort("onItemLongClick:" + position);
return false;
}
});
//设置Item中子控件点击事件
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
//判断子控件
if (view.getId() == R.id.tv_name) {
ToastUitl.showShort("onItemChildClick:" + position);
}
}
});
4.初始化RecyclerView
//设置布局方式
mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
//解决数据加载不完的问题
mRecyclerView.setNestedScrollingEnabled(false);
//当知道Adapter内Item的改变不会影响RecyclerView宽高的时候,可以设置为true让RecyclerView避免重新计算大小
mRecyclerView.setHasFixedSize(true);
//解决数据加载完成后, 没有停留在顶部的问题
mRecyclerView.setFocusable(false);
//设置适配器
mRecyclerView.setAdapter(mAdapter);