“我正在参加「掘金·启航计划」”
本篇主要对该库的头部,底部,空布局等进行了解和实战。
练习项目 GitHub 地址
头部
「参考」 练习项目里的 HeadFootEmptyActivity 相关。
使用场景
列表具有特殊头部。
相关属性
「BaseQuickAdapter」
| 属性 | 功能 |
|---|---|
| headerViewAsFlow | GridLayoutManager 前提下,true 则作为 item 的部分,false 则作为 adapter 的头部 |
| setHeaderView() | 替换头部 |
| headerLayoutCount | 如果有头部返回 1,否则返回 0 |
| hasHeaderLayout() | 是否有头部 |
| addHeaderView() | 增加头部 |
| removeHeaderView() | 删除头部 |
| removeAllHeaderView() | 删除全部头部 |
| headerWithEmptyEnable | 当显示空布局时,是否显示 Header |
//GridLayoutManager前提下,true则作为item的部分,false则作为adapter的头部
headFootEmptyAdapter.headerViewAsFlow = true
//替换头部
headFootEmptyAdapter.setHeaderView(view)
//替换第一个头部
headFootEmptyAdapter.setHeaderView(view, 0)
//如果有头部返回1,否则返回0
val headerLayoutCount = headFootEmptyAdapter.headerLayoutCount
Log.e("头部情况===", "$headerLayoutCount")
//是否有 HeaderLayout
val isHasHeader = headFootEmptyAdapter.hasHeaderLayout()
Log.e("是否有头部", "$isHasHeader")
//增加头部
headFootEmptyAdapter.addHeaderView(view)
//头部列表的指定位置插入,如果index的值小于头部列表的长度或者小于,则index值为头部列表的长度值
headFootEmptyAdapter.addHeaderView(view, 1)
//删除头部
headFootEmptyAdapter.removeHeaderView(headList[headNum - 1])
//删除全部头部
headFootEmptyAdapter.removeAllHeaderView()
//当显示空布局时,是否显示头部 true显示 false不显示
headFootEmptyAdapter.headerWithEmptyEnable = true
效果图
- headerViewAsFlow=true 效果
- headerViewAsFlow=false 效果
- 增删改头部
底部
「参考」 练习项目里的 HeadFootEmptyActivity 相关。
使用场景
列表具有特殊底部。
相关属性
「BaseQuickAdapter」
| 属性 | 功能 |
|---|---|
| footerViewAsFlow | GridLayoutManager 前提下,true 则作为 item 的部分,false 则作为 adapter 的底部 |
| setFooterView() | 替换底部 |
| footerLayoutCount | 如果有底部返回 1,否则返回 0 |
| hasFooterLayout() | 是否有底部 |
| addFooterView() | 增加底部 |
| removeFooterView() | 删除底部 |
| removeAllFooterView() | 删除全部底部 |
| footerWithEmptyEnable | 当显示空布局时,是否显示底部 |
//GridLayoutManager前提下,true则作为item的部分,false则作为adapter的底部
headFootEmptyAdapter.footerViewAsFlow = true
//替换底部
headFootEmptyAdapter.setFooterView(footerView)
//替换第一个底部
val view = getFootView()
headFootEmptyAdapter.setFooterView(view, 0)
//如果有底部返回1,否则返回0
val footerLayoutCount = headFootEmptyAdapter.footerLayoutCount
Log.e("底部情况===", "$footerLayoutCount")
//是否有 hasFooterLayout
val isHasFooter = headFootEmptyAdapter.hasFooterLayout()
Log.e("是否有底部", "$isHasFooter")
//底部列表的指定位置插入,如果index的值小于底部列表的长度或者小于,则index值为底部列表的长度值
headFootEmptyAdapter.addFooterView(view, 1)
//删除底部
headFootEmptyAdapter.removeFooterView(footList[footNum - 1])
//删除全部底部
headFootEmptyAdapter.removeAllFooterView()
//当显示空布局时,是否显示底部 true显示 false不显示
headFootEmptyAdapter.footerWithEmptyEnable = true
效果图
- headerViewAsFlow=true 效果
- headerViewAsFlow=false 效果
- 增删改底部
空布局
「参考」 练习项目里的 HeadFootEmptyActivity 相关。
使用场景
列表在没有数据的时候显示空布局,可带头的空布局,可带底的空布局。
相关属性
「BaseQuickAdapter」
| 属性 | 功能 |
|---|---|
| setEmptyView | 设置空布局 |
| isUseEmpty | 是否使用空布局 |
| hasEmptyView() | 判断是否有空布局 |
| removeEmptyView() | 删除空布局 |
//通过设置LayoutResId为空布局
headFootEmptyAdapter.setEmptyView(R.layout.item_empty)
//通过设置View为空布局
headFootEmptyAdapter.setEmptyView(getEmptyView())
//判断是否有空布局
val isHasEmptyView = headFootEmptyAdapter.hasEmptyView()
Log.e("是否有空布局==", "$isHasEmptyView")
//删除空布局
headFootEmptyAdapter.removeEmptyView()