安卓系列之第三方库 BaseRecyclerViewAdapterHelper 头部,底部,空布局篇

346 阅读2分钟

“我正在参加「掘金·启航计划」”

本篇主要对该库的头部,底部,空布局等进行了解和实战。

练习项目 GitHub 地址

github.com/ElaineTaylo…

头部

「参考」 练习项目里的 HeadFootEmptyActivity 相关。

使用场景

列表具有特殊头部。

相关属性

「BaseQuickAdapter」

属性功能
headerViewAsFlowGridLayoutManager 前提下,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

效果图

  1. headerViewAsFlow=true 效果
  2. headerViewAsFlow=false 效果
  3. 增删改头部

底部

「参考」 练习项目里的 HeadFootEmptyActivity 相关。

使用场景

列表具有特殊底部。

相关属性

「BaseQuickAdapter」

属性功能
footerViewAsFlowGridLayoutManager 前提下,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

效果图

  1. headerViewAsFlow=true 效果
  2. headerViewAsFlow=false 效果
  3. 增删改底部

空布局

「参考」 练习项目里的 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()

效果图