当前位置: 首页 > news >正文

RecyclerView设置空布局

参考了以下几种设置空布局的方法:
RecyclerView实现空视图切换_recyclerview如何设置无数据图-CSDN博客

https://juejin.cn/post/6844904153127337998

之前一直都是在Adapter中写EmptyViewHolder的方法,但是不能完全适配自定义LayoutManager。

所以自己写了一个设置空布局的方法。给RecyclerView的父布局添加EmptyLayout,然后监听Adapter数据,当数据为空是显示空布局,隐藏RecyclerView

fun RecyclerView.setEmptyLayout(@LayoutRes layoutId: Int) {if (parent !is ViewGroup) {throw Exception("父布局必须是ViewGroup")}val parentView = parent as ViewGroupval emptyView: View = LayoutInflater.from(this.context).inflate(layoutId, parentView, false)if (parentView is ConstraintLayout) {val sourceParams = layoutParams as ConstraintLayout.LayoutParamsval targetParams = ConstraintLayout.LayoutParams(layoutParams)targetParams.startToStart = sourceParams.startToStarttargetParams.startToEnd = sourceParams.startToEndtargetParams.endToEnd = sourceParams.endToEndtargetParams.endToStart = sourceParams.endToStarttargetParams.topToTop = sourceParams.topToToptargetParams.topToBottom = sourceParams.topToBottomtargetParams.bottomToBottom = sourceParams.bottomToBottomtargetParams.bottomToTop = sourceParams.bottomToToptargetParams.horizontalBias = sourceParams.horizontalBiastargetParams.verticalBias = sourceParams.verticalBiasparentView.addView(emptyView, targetParams)}val rvAdapter = adapterif (rvAdapter == null) {throw Exception("先设置adapter,再调用setEmptyLayout")}rvAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {override fun onChanged() {super.onChanged()emptyView.isVisible = rvAdapter.itemCount == 0isVisible = rvAdapter.itemCount != 0}})
}

效果如下:

目前只对RecycerlView的父布局是ConstraintLayout做了部分适配,其他父布局下的RecyclerView和空布局的显示位置可能不一样。****

http://www.dtcms.com/a/525264.html

相关文章:

  • 如何看网站空间问题开发网站公司
  • 广州网站设计开发招聘泰兴中信建设有限责任公司
  • 石家庄seo网站建设云南省科技网站
  • 基于单片机的恒流源三极管放大倍数测量仪设计
  • 如何解除 iPad 和 iPhone 文本消息的关联?
  • 乔智云智能建站软件开发培训视频
  • 网站建设有哪些推广渠道做违法网站会怎么样
  • 多少钱算网站常州网站建设哪家便宜
  • 郑州企业网站建设费用策划公司起什么名字好
  • KTH1701 系列高性能、低功耗、全极磁场检测霍尔开关传感器
  • LeeCode 143. 重排链表
  • 1024节日?
  • 云图-地基云图-云层分割
  • 网上做论文的网站c网站开发
  • 递归|模拟
  • 站长之家统计广告设计制作税率
  • Linux环境下编译C语言使用libpq连接瀚高数据库
  • 门户网站排行榜seo实战密码第四版电子书
  • 购物网站哪个好电商网站营销
  • HBase基础命令详解
  • 租好服务器咋做网站呢网页设计与网站制作视频教程
  • 上海网站制作网络推广方法网站优化塔山双喜
  • 学习如何用 C++ 写一个线程安全的单例模式
  • 使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 21--PO(POM) 设计模式代码实现和全局浏览器驱动设置
  • 旋转花键如何实现微米级定位误差控制?
  • 提供手机自适应网站公司用易语言做钓鱼网站
  • 网站后台是怎么更新跨境电商平台有哪些特点
  • UVa 12991 Game Rooms
  • 2012年下半年试题一:论基于架构的软件设计方法及应用
  • 7. Python 列表:从概念本质到实战应用