首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ItemDecoration显示在RecyclerView上方,而不是其下方

ItemDecoration是一个用于RecyclerView的类,用于在RecyclerView的Item之间绘制分隔线、边框或其他装饰效果。默认情况下,ItemDecoration会显示在RecyclerView的Item下方,但是有时候需要将其显示在RecyclerView的Item上方。

要实现ItemDecoration显示在RecyclerView上方,可以通过定制ItemDecoration的绘制顺序来实现。默认情况下,RecyclerView会先绘制Item,然后才绘制ItemDecoration。因此,要将ItemDecoration显示在Item上方,可以通过调整绘制顺序,先绘制ItemDecoration,再绘制Item。

实现方式可以通过以下步骤进行:

  1. 创建一个自定义的ItemDecoration类,继承自RecyclerView.ItemDecoration。
  2. 在自定义的ItemDecoration类中重写onDraw()方法,在该方法中绘制所需的装饰效果。
  3. 在RecyclerView的Adapter中,找到要使用的ItemDecoration实例。
  4. 调用RecyclerView的addItemDecoration()方法,将ItemDecoration添加到RecyclerView中。
  5. 调用RecyclerView的invalidateItemDecorations()方法,通知RecyclerView重新绘制ItemDecoration。
  6. 在RecyclerView的LayoutManager中,调用setReverseLayout(true)方法,将ItemDecoration的绘制顺序反转。

通过以上步骤,ItemDecoration就会显示在RecyclerView的Item上方了。

适用场景:

  • 在RecyclerView中需要显示分隔线、边框或其他装饰效果时,可以使用ItemDecoration。
  • 当希望装饰效果显示在Item上方时,可以按照上述步骤进行调整。

腾讯云相关产品推荐:

  • Tencent Cloud COS(腾讯云对象存储服务):可用于存储和管理多媒体资源文件,如图片、音视频等。产品介绍链接
  • Tencent Cloud CDN(腾讯云内容分发网络):通过将资源缓存在全球各地的边缘节点上,提供低延迟、高可用的内容分发服务。产品介绍链接

请注意,以上产品仅作为示例,实际选择产品应根据具体需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

RecyclerView 自定义ItemDecoration从入门到实现吸顶效果

作者:Lipt0n 地址:http://www.jianshu.com/p/ce78da3e0ff6 声明:本文是Lipt0n原创,已获授权发布,未经原作者允许请勿转载 RecyclerView...首先新建一个类覆写ItemDecoration里面有三个方法: public class SimpleItemDecoration extends RecyclerView.ItemDecoration...onDrawOver 英文Over的意思…的上面 ,可以理解成是图层关系,item的内容和分割线是第一层(要在第一层画东西要调用onDraw),onDrawOver是第二层,位于onDraw的上面getItemOffsets...但是这个并不是获取RecyclerView所有的item个数,而是当前屏幕可见的item个数。...因为是吸顶效果,所以分割线和传统的分割线一样应该是每个item的上方不是下方 当前屏幕可见的第一个item的Bottom<=item_height(分割线的高度) 说明可见的第一个item的底部已经超出了分割线的高度

1.3K10
  • 小甜点,RecyclerViewItemDecoration 讲解及高级特性实践

    当时它的出现解决了我一个大的需求,这个需求就是电视盒子界面上横向加载应用列表,由于 ListView 没有横向加载的功能,网络上开源的那些 HorizontalListView 又不满足需求,所以我们只能自定义...需要注意的一点是 getItemOffsets 是针对每一个 ItemView, onDraw 方法却是针对 RecyclerView 本身,所以 onDraw 方法中需要遍历屏幕上可见的 ItemView...主要是一些参数的确定,例如 DividerHeight,注意这个 DividerHeight 不是指 ItemView 向上的间隔值,而是相应的 ItemDecoration 的高度。...需要注意的是 onDraw 方法,ItemDecoration ItemView 的下方绘制的,也就是 ItemView 可能会覆盖 ItemDecoration 的内容。...这些角标都是绘制 ItemView 之上的,现在有了 ItemDecoration 我们也可以轻松优雅地实现它。 比如我们要实现一个图书销量排行榜。我们有大概的草图。 ?

    1.1K20

    RecyclerView定制:通用ItemDecoration及全展开RecyclerView的实现不同场景RecyclerView实现

    ,那么,RecyclerView源码中,是怎么用使用ItemDecoration的呢。...的measureChildWithMargins函数,measureChildWithMargins函数会进一步找到addItemDecoration添加的ItemDecoration,通过getItemOffsets...的onDraw函数, RecyclerViewonDraw函数中会调用ItemDecoration的onDraw,绘制分割线或者其他辅助信息,ItemDecoration 支持上下左右四个方向定制占位分割线等信息...parent); } else { ... } } 其实,如果不是特殊的绘制需求,比如显示七彩的,或者图片,完全不需要任何绘制,如果一定要绘制,注意绘制的尺寸区域跟原来getItemOffsets...--ExpandedGridLayoutManager 全展开的网格式RecyclerView的实现跟线性的十分相似,唯一不同的就是确定尺寸的时候,不是将每个child的尺寸叠加,而是要将每一行或者每一列的尺寸叠加

    2.6K41

    Android RecyclerView八个必会的面试技巧

    引言 Android开发领域,RecyclerView是一项强大的工具,用于处理大量数据的高效显示。熟练掌握RecyclerView的知识对于一名Android开发者来说至关重要。...RecyclerView的绘制流程 问题: 能详细描述RecyclerView的绘制流程吗?从数据源到最终显示屏幕上的过程?...这样滑动过程中,可以避免频繁地调用findViewById。当Item被滑出屏幕时,ViewHolder会被复用,不是重新创建。...参考简答: ViewHolder模式: RecyclerView使用ViewHolder模式来缓存视图。当ItemView滑出屏幕时,对应的ViewHolder会被缓存,不是立即销毁。...复用机制: 当新的数据需要显示时,RecyclerView会调用Adapter的onBindViewHolder方法,将新的数据绑定到已存在的ViewHolder上,不是创建新的View。

    30120

    教你玩转 Android RecyclerView:深入解析 RecyclerView.ItemDecoration类(含实例讲解)

    ---- 前言 RecyclerView Android开发中非常常用,如果能结合ItemDecoration类使用,那么将大大提高RecyclerView的表现效果 本文全面解析了ItemDecoration...2.1.3 源码分析 RecyclerView本质上是一个自定义ViewGroup,子视图child = 每个ItemView 通过 LayoutManager测量并布局 ItemView public...注意点2: getItemOffsets() 针对是每一个 ItemView的, onDraw() 针对 RecyclerView 本身 解决方案: 使用onDraw()绘制时,需要先遍历RecyclerView...的所有ItemView分别获取它们的位置信息,然后再绘制内容 此处遍历的RecyclerView的ItemView(即Child view),并不是 Adapter 设置的每一个 item,而是可见的...ItemView 的显示效果,即在ItemView 的基础上绘制内容 如分割线等等 2.2.5 实例讲解 实例说明:ItemView设计一个高度为 10 px 的红色分割线 思路 通过getItemOffsets

    1.9K21

    RecyclerView必知必会

    比如有一个需求是屏幕竖着的时候的显示形式是ListView,屏幕横着的时候的显示形式是2列的GridView,此时如果用RecyclerView,则通过设置LayoutManager一行代码实现替换。...,因此万能适配器出现了,他能通过以下方式快捷地创建一个Adapter: 是不是很方便。...因此:ItemDecoration的onDraw()绘制Item之前调用,ItemDecoration的onDrawOver()绘制Item之后调用。...这些方法的内部实际上并不是书写执行动画的代码,而是将需要执行动画的Item全部存入成员变量中,并且返回值为true,然后runPendingAnimations()中一并执行。...我们只需要通过以下方式为原有的Adapter(这里命名为NormalAdapter)添加addHeaderView()和addFooterView()接口: 是不是看起来特别优雅。

    4.7K20

    RecyclerView 必知必会

    比如有一个需求是屏幕竖着的时候的显示形式是ListView,屏幕横着的时候的显示形式是2列的GridView,此时如果用RecyclerView,则通过设置LayoutManager一行代码实现替换。...需要注意的是onCreateViewHolder()中,映射Layout必须为 ? 不能是: ?...因此:ItemDecoration的onDraw()绘制Item之前调用,ItemDecoration的onDrawOver()绘制Item之后调用。...这些方法的内部实际上并不是书写执行动画的代码,而是将需要执行动画的Item全部存入成员变量中,并且返回值为true,然后runPendingAnimations()中一并执行。...我们只需要通过以下方式为原有的Adapter(这里命名为NormalAdapter)添加addHeaderView()和addFooterView()接口: ? 是不是看起来特别优雅。

    4.2K90

    RecyclerView】 六、RecyclerView.ItemDecoration 条目装饰 ( 简介 | onDraw | onDrawOver | getItemOffsets )

    的内部类 , ItemDecoration 顾名思义就是作为 Item 条目装饰用的 ; 可以控制 RecyclerView 条目组件的 边距 , 以及 item 条目组件 底层绘制背景 , item...RecyclerView 的画布上绘制合适的装饰, 该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, 显示 item 布局上层 ; void onDrawOver...* 该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, * 显示 item 布局上层....方法. */ public abstract static class ItemDecoration { /** * 提供给 RecyclerView...* 该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, * 显示 item 布局上层.

    58600

    RecyclerView 必知必会

    比如有一个需求是屏幕竖着的时候的显示形式是ListView,屏幕横着的时候的显示形式是2列的GridView,此时如果用RecyclerView,则通过设置LayoutManager一行代码实现替换。...,因此万能适配器出现了,他能通过以下方式快捷地创建一个Adapter: ?...因此:ItemDecoration的onDraw()绘制Item之前调用,ItemDecoration的onDrawOver()绘制Item之后调用。...这些方法的内部实际上并不是书写执行动画的代码,而是将需要执行动画的Item全部存入成员变量中,并且返回值为true,然后runPendingAnimations()中一并执行。...我们只需要通过以下方式为原有的Adapter(这里命名为NormalAdapter)添加addHeaderView()和addFooterView()接口: ? 是不是看起来特别优雅。

    2.6K70

    Android-Recyclerview常用总结

    概述 android开发中我们不可避免的会用到Recyclerview,用以替代之前的ListView,GridView,Gallery等.它是support:recyclerview-v7中提供的控件...总结也就一句话:高类聚低耦合.RecyclerView已经标准化ViewHolder,我们自定义的ViewHoler需要继承 RecyclerView.ViewHolder,然后构造方法中初始化控件....LayoutManager,布局管理器,控制显示的方式。 ItemDecoration,控制Item间的间隔(允许绘制)。 ItemAnimator,控制Item增删的动画。...这不是重点,重点是我们怎么用它,感兴趣的小伙伴自行百度。...image.png 2.2 如果想来一个稍微有难度的,可以尝试自定义一个ItemDecoration,那么就要 extends RecyclerView.ItemDecoration重写两个方法(其实一般有三个

    1.3K30

    ItemTouchHelper 实现交互动画

    04.拖拽效果上优化 拖拽效果优化 item被拖拽或侧滑时修改背景色,当动作结束后将背景色恢复回来,ItemTouchHelper.Callback中正好有对应这两个状态的方法,分别是:onSelectedChanged...并不是多出了两条空白数据,它们是正常的数据,只是看不到了,这是因为RecyclerView条目(itemView)覆用导致的,前面onChildDraw()方法中对itemView设置了透明和缩小,一个列表中固定只有几个...11.RecyclerView上拉加载 添加recyclerView的滑动事件,上拉加载分页数据,设置上拉加载的底部footer布局,显示和隐藏footer布局 12.RecyclerView缓存原理...16.自定义SnapHelper 自定义SnapHelper 19.自定义ItemDecoration分割线 需要自定义类实现RecyclerView.ItemDecoration类,并选择重写合适方法...嵌套RecyclerView问题 要实现在NestedScrollView中嵌入一个或多个RecyclerView,会出现滑动冲突,焦点抢占,显示不全等。

    3.9K20

    Android RecyclerView 使用完全解析 体验艺术般的控件

    概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对进行使用。...你想要控制显示的方式,请通过布局管理器LayoutManager 你想要控制Item间的间隔(可绘制),请通过ItemDecoration 你想要控制Item增删的动画,请通过ItemAnimator...RecyclerView基本需要上面一系列的步骤,那么为什么会添加这么多的步骤呢?...但是如果我们有这么个需求,纵屏的时候显示为ListView,横屏的时候显示两列的GridView,我们RecyclerView可以轻松搞定,如果使用ListView去实现还是需要点功夫的~~~ 当然了...甚至某些特殊屏幕,让横向滑动~~再选择一个nice的动画效果,相信这种插件式的编码体验一定会让你迅速爱上RecyclerView

    1.6K10

    Android RecyclerView之粘性头部+点击事件

    实现上图列表的粘性头部功能一般通过布局页面额外写粘性头部View,然后通过监听列表的滑动来控制显示隐藏粘性头部View。...如果列表使用RecyclerView实现,那么就能通过自定义ItemDecoration达到目的。下面先简单介绍ItemDecoration。...ItemDecoration ItemDecorationRecyclerView的静态内部类,它包含三个方法: getItemOffsets(Rect outRect, View view, RecyclerView...如下图所示: #######onDraw(Canvas c, RecyclerView parent, State state) 这个方法可以实现类似绘制背景的效果,绘制的东西是显示item的下层,一般配合...RecyclerViewItemDecoration由浅入深 深入理解 RecyclerView 系列之一:ItemDecoration StickHeaderItemDecoration--RecyclerView

    4.4K40
    领券