RecyclerView粘性头部控件 – sticky-headers-recyclerview,Header背景不显示

RecyclerView粘性头部控件 – sticky-headers-recyclerview,Header背景不显示RecyclerView 粘性头部控件 Github timehop sticky headers recyclerview 当 RecycleView 被 SmartRefresh 嵌套时 会造成 Header 设置的背景不显示 调试源码发现在 HeaderViewCa 中有计算 Header 的宽度 intwidthSpec intheightSpe if mOrientation getOrientati parent Li

RecyclerView粘性头部控件Github:timehop/sticky-headers-recyclerview

当RecycleView被SmartRefreshLayout嵌套时,会造成Header设置的背景不显示,调试源码发现在HeaderViewCache中有计算Header的宽度

.... int widthSpec; int heightSpec; if (mOrientationProvider.getOrientation(parent) == LinearLayoutManager.VERTICAL) { //  这里parent.getWidth()获取不到宽度 widthSpec = View.MeasureSpec.makeMeasureSpec(parent.getWidth(), View.MeasureSpec.EXACTLY); heightSpec = View.MeasureSpec.makeMeasureSpec(parent.getHeight(), View.MeasureSpec.UNSPECIFIED); } else { widthSpec = View.MeasureSpec.makeMeasureSpec(parent.getWidth(), View.MeasureSpec.UNSPECIFIED); heightSpec = View.MeasureSpec.makeMeasureSpec(parent.getHeight(), View.MeasureSpec.EXACTLY); } int childWidth = ViewGroup.getChildMeasureSpec(widthSpec, parent.getPaddingLeft() + parent.getPaddingRight(), header.getLayoutParams().width); int childHeight = ViewGroup.getChildMeasureSpec(heightSpec, parent.getPaddingTop() + parent.getPaddingBottom(), header.getLayoutParams().height); header.measure(childWidth, childHeight); ....

注释的地方获取不到宽度,所以在自定义的Adapter中重新设置一下宽度

 @Override public ViewHolder onCreateHeaderViewHolder(ViewGroup parent) { .... // 这个粘性头部库Header宽度计算的有问题,会导致背景显示不出来,这里重新设置一下 RecyclerView.LayoutParams p = (RecyclerView.LayoutParams) view.getLayoutParams(); p.width = DensityUtil.getScreenWidth(mContext); view.setLayoutParams(p); ... }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220391.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:36
下一篇 2026年3月17日 下午8:36


相关推荐

  • Jenkins(2)docker容器中安装python3「建议收藏」

    Jenkins(2)docker容器中安装python3「建议收藏」前言使用docker安装jenkins环境,jenkins构建的workspace目录默认是在容器里面构建的,如果我们想执行python3的代码,需进容器内部安装python3的环境。进jenki

    2022年7月29日
    7
  • channelartlist|频道文档:

    channelartlist|频道文档:

    2021年9月24日
    61
  • 制作initramfs镜像_乌班图initramfs问题

    制作initramfs镜像_乌班图initramfs问题Initramfs的制作和移植1.initramfsinitramfs在编译内核的同时被编译并与内核生成一个映像文件,可以压缩也可以不压缩,但是目前只支持cpio包格式。它是根文件系统制作和制作的一种非常简单的方法,也可以通过执行这个文件系统中的程序引导真正的文件系统,这样加载根文件系统的工作就不是内核的工作,而是initramfs的工作。由于initramfs使用cpio包格

    2022年8月11日
    12
  • dxf 格式详解

    dxf 格式详解解析 DXF 图形文件格式一 DXF 文件格式分析 DXF 文件由标题段 表段 块段 实体段和文件结束段 5 部分组成 其内容如下 标题段 HEADER 标题段记录 AutoCAD 系统的所有标题变量的当前值或当前状态 标题变量记录了 AutoCAD 系统的当前工作环境 如 SNAP 捕捉当前状态 栅格间距式样 当前图层层名及线型 颜色等 表段 TABLES 表段共包含 4 个表 每个表又包含可变数目的表项 这些表在文件中出现的顺序是线型表 LTYPE 图层表 LAYER 字样表 STYLE 视图表 VIEW

    2026年3月20日
    3
  • CSS 都有哪些选择器?

    CSS 都有哪些选择器?CSS 都有哪些选择器 1 标签选择器 如 body div p ul li 2 类选择器 如 class head class head logo 3 ID 选择器 如 id name id name txt 4 全局选择器 如 号 5 组合选择器 如 head head logo 注意两选择器用空格键分开 6 继承选择器 如 divp 注意两选择

    2026年3月17日
    3
  • react 纯函数组件_react类组件

    react 纯函数组件_react类组件纯函数PureFunction定义:一个函数的返回结果只依赖于它的参数,并且在执行的过程中没有副作用,我们就把该函数称作纯函数。特点1.函数的返回结果只依赖于它的参数。letfoo=(a,b)=>a+bfoo(1,2)//=32.函数执行过程里面没有副作用。什么是副作用除了修改外部的变量,一个函数在执行过程中还有很多方式产生外部可观察的变化,比如说调用DOMAPI修改页面,或者你发送了Ajax请求,还有调用window.reload刷新浏览器,

    2025年7月4日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号