學(xué)習(xí)BaseQuickAdapter如何使用

項(xiàng)目引入依賴

1、在bulid.gradle(Project:xxx)的文件中添加

allprojects {
    repositories {
        //jcenter鏡像
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url "https://jitpack.io" }
    }
}

2、在bulid.gradle(Module:xxx)的文件添加

dependencies {
    implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
  // 下拉刷新
    implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
    implementation 'com.scwang.smartrefresh:SmartRefreshHeader:1.1.0'
}
使用案例

3.1 設(shè)置布局文件

        <com.scwang.smartrefresh.layout.SmartRefreshLayout
            android:id="@+id/smart"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:srlEnableHeaderTranslationContent="false">

            <com.scwang.smartrefresh.header.MaterialHeader
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

            <androidx.recyclerview.widget.RecyclerView
                android:id="@+id/recy_kongjian"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />

            <com.scwang.smartrefresh.layout.footer.ClassicsFooter
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />
        </com.scwang.smartrefresh.layout.SmartRefreshLayout>

3.2 自定義適配器,繼承BaseQuickAdapter

class TiXingAdapter : BaseQuickAdapter<QtypeVo, BaseViewHolder>(R.layout.item_tixing),LoadMoreModule {
   override fun convert(holder: BaseViewHolder, item: QtypeVo) {
       val  tvName = holder.getView<TextView>(R.id.tv_content)
       if (item.isSelected) {
           tvName.background = MyApp.instance.resources.getDrawable(R.drawable.shape_tv_ckbg_bg)
           tvName.setTextColor(ZJColor.white)
       } else {
           tvName.background = MyApp.instance.resources.getDrawable(R.drawable.shape_btn_bg_gray)
           tvName.setTextColor(ZJColor.black_33)
       }
       tvName.text = item.qtypename
   }
}

3.3 調(diào)用,如果xml中沒有設(shè)置layoutManager,那可以聲明的時(shí)候設(shè)置

tiXingAdapter  = TiXingAdapter ()
tiXingAdapter?.data = kemuDatas
recy_kemu.layoutManager = GridLayoutManager(this, 3)
recy_kemu.adapter = tiXingAdapter

切記一定要設(shè)置布局管理器否則數(shù)據(jù)出不來

適配器點(diǎn)擊事件

4.1 item點(diǎn)擊事件

tiXingAdapter?.setOnItemClickListener { adapter, view, position ->
//item點(diǎn)擊事件
}

4.2 item長按事件

tiXingAdapter?.setOnItemLongClickListener(new BaseQuickAdapter.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
                
                return false;
            }
        });

4.3 item 子控件點(diǎn)擊事件
一般用于RecyclerView嵌套R(shí)ecyclerView或者滑動(dòng)刪除等其他的操作

tiXingAdapter?.addChildClickViewIds(R.id.wvItem, R.id.fCon)
tiXingAdapter?.setOnItemChildClickListener() { adapter, view, position ->
  //點(diǎn)擊事件
}

4.4 數(shù)據(jù)為空的顯示的ui

tiXingAdapter?.setEmptyView(R.layout.empty_bg)
下拉刷洗上拉加載更多
smart.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
            override fun onLoadMore(refreshLayout: RefreshLayout) {
                loadmore()
            }

            override fun onRefresh(refreshLayout: RefreshLayout) {
                refresh()
            }

        })

結(jié)束刷新

override fun endRefreshAndLoadMore() {
        super.endRefreshAndLoadMore()
        smart.finishRefresh()
        smart.finishLoadMore()
    }

在p層的時(shí)候記得要調(diào)用

mView.endRefreshAndLoadMore()

如果加載到最后一頁沒有數(shù)據(jù)了提示沒有更多數(shù)據(jù)

smart.setNoMoreData(true)//沒有更多數(shù)據(jù)
smart.setNoMoreData(false)//還有更多數(shù)據(jù) 默認(rèn)的是false
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容