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);