Android 開發RecyclerView的萬能適配器BaseRecyclerViewAdapterHelper,使用簡單,方便,減少代碼量

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章