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

RecyclerView onDrawOver视图在滚动后消失

RecyclerView是Android开发中常用的列表控件,它可以高效地展示大量数据,并支持滚动、点击等交互操作。而onDrawOver视图是RecyclerView的一个特殊功能,它可以在滚动后在列表上方绘制一个悬浮的视图。

具体来说,onDrawOver视图是通过RecyclerView的ItemDecoration实现的。ItemDecoration是RecyclerView的一个辅助类,可以在列表项的上方或下方绘制自定义的装饰内容。通过重写ItemDecoration的onDrawOver方法,我们可以在滚动后在列表上方绘制一个悬浮的视图。

onDrawOver视图的特点是它会在滚动后一直保持在列表的顶部,不会随着列表的滚动而消失。这使得我们可以在列表中展示一些重要的信息或操作按钮,例如固定的标题栏、悬浮的广告条等。

在实际应用中,onDrawOver视图可以有很多应用场景。例如,在一个聊天应用中,我们可以使用onDrawOver视图来展示正在输入的用户头像和文字,以提醒用户当前有人正在输入。又或者,在一个商品列表中,我们可以使用onDrawOver视图来展示一个固定的购物车按钮,方便用户随时添加商品到购物车。

对于腾讯云的相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法给出具体的推荐。但是腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以满足各种应用场景的需求。你可以通过访问腾讯云的官方网站,了解他们的产品和服务,以及相关的文档和案例。

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

相关·内容

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

parent, RecyclerView.State state) { ... } // 方法2:onDraw() // 作用:视图上设置绘制范围,并绘制内容...() // 作用:同样是绘制内容,但与onDraw()的区别是:绘制图层的最上层 @Override public void onDrawOver(Canvas c, RecyclerView...view:RecyclerView 中的 视图Item // 3. parent:RecyclerView 本身 // 4. state:状态 outRect.set...2.1.3 源码分析 RecyclerView本质上是一个自定义ViewGroup,子视图child = 每个ItemView 其通过 LayoutManager测量并布局 ItemView public...距离 的坐标位置 final int left = parent.getPaddingLeft(); // RecyclerView 的右边界减去 paddingRight 的坐标位置

1.7K21

Android ItemDecoration 实现分组索引列表的示例代码

onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDrawOver(c, parent...3、onDrawOver() 该方法同样也是用来绘制的,但是它在ItemDecoration的onDraw()方法和ItemView的onDraw()完成才执行。...所以其绘制的内容会遮挡RecyclerView上,因此我们可以该方法中绘制分组索引列表中悬浮的GroupHeader,也就是列表顶部随着列表滚动切换的GroupHeader。...onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { super.onDrawOver(c, parent...onTouchEvent()方法里,我们根据手指在SideBar上触摸坐标点的y值,计算出触摸的相应字符,以便在OnSideBarTouchListener接口进行后续操作,例如列表的跟随滚动等等。

1.8K20

RecyclerView 居然还能实现吸底效果

测量RecyclerView内容高度实现 这种方式很直观,我们先获取RecyclerView控件的高度h1,设置完数据再获取RecyclerView的内容高度h2,然后将h1与h2进行比较: ①如果h1...②如果h1小于h2,则说明RecyclerView内容高度超出屏幕,此时RecyclerView滚动,所以我们需要在RecyclerView底部显示吸底的View。...②让Adapter支持两种布局,普通Item和Footer布局 ③在给RecyclerView设置完数据,获取RecyclerView的控件高度h1和RecyclerView的内容高度h2 ④如果h1...然后我们就可以onDrawOver获取第一个可见Item的头部View,接着复用这个头部View,将其绘制顶部即可。 接下来对这两种方式进行介绍。...然后我们就可以onDrawOver获取第一个可见Item的头部View,接着复用这个头部View,将其绘制顶部即可。 示意图如下: ?

2.9K20

RecyclerView技术栈参考资料:

(能够在有限的窗口中展示大数据集合的灵活视图。) 所以我们能够理解为,RecyclerView一个恰当的使用场景是:由于尺寸限制,用户的设备不能一次性展现所有条目,用户需要上下滚动以查看更多条目。...左边的图是数据初始化的示例,当向上滚动视图的时候,当条目不可见之后将被回收。右图中红色区域内的两条不可见条目,将被放到缓存队列中以便新的条目可见时进行复用。...定制Item条目 - ListView只能实现垂直线性排列的列表视图,与之不同的是,RecyclerView可以通过设置RecyclerView.LayoutManager来定制不同风格的视图,比如水平滚动列表或者不规则的瀑布流列表...相反地,RecyclerView中必须自定义实现RecyclerView.Adapter并为其提供数据集合。...parent) 装饰的绘制Item条目绘制之前调用,所以这有可能被Item的内容所遮挡 public void onDrawOver(Canvas c, RecyclerView parent) 装饰的绘制

1.2K10

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

public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {...onDrawOver 英文Over的意思…的上面 ,可以理解成是图层关系,item的内容和分割线是第一层(要在第一层画东西要调用onDraw),而onDrawOver是第二层,位于onDraw的上面getItemOffsets...c.drawRect(0,top,wight,bottom,paint); } ..... } 运行得到如下图的效果...注意看陈奕迅这个item的分割线是item的上面的,并且分割线的高度已经足够容下我们稍后要绘制的内容了. 接着来实现3,怎么样才能让分割线满足条件的时候动,不满足的时候固定?...这个时候就需要用到代码中一直没覆写的onDrawOver方法了,先来实现固定不动的分割线,代码也是非常的简单,原来的代码上覆写onDrawOver方法(这里new了新的画笔paint2,把固定的分割线用半透明红色来作为背景

1.1K10

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

文章目录 一、RecyclerView.ItemDecoration 简介 1、onDraw() 方法 2、onDrawOver () 方法 3、getItemOffsets () 方法 二、RecyclerView.ItemDecoration...的内部类 , ItemDecoration 顾名思义就是作为 Item 条目装饰用的 ; 可以控制 RecyclerView 条目组件的 边距 , 以及 item 条目组件 底层绘制背景 , item...) 1、onDraw() 方法 onDraw方法 : 提供给 RecyclerView 的画布上绘制合适的装饰 , 该方法中绘制的任何内容, 都在 item 布局组件绘制之前绘制, 绘制的内容都被...: 提供给 RecyclerView 的画布上绘制合适的装饰, 该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, 显示 item 布局上层 ;...* * 所有的 ItemDecoration 会按照添加顺序绘制, item 条目组件绘制前先执行 onDraw 方法 , * item 条目绘制之后执行 onDrawOver

51300

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

, State state) { onDraw(c, parent); } public void onDrawOver(Canvas c, RecyclerView parent..., State state) { onDrawOver(c, parent); } public void getItemOffsets(Rect outRect, View...绘制的时候,去会绘制decorator,即调用该类的onDraw和onDrawOver方法, onDraw方法先于drawChildren onDrawOverdrawChildren之后,一般我们选择复写其中一个即可...该分割线是系统默认的,你可以theme.xml中找到该属性的使用情况。那么,使用系统的listDivider有什么好处呢?就是方便我们去随意的改变,该属性我们可以直接声明: <!...有一点需要注意,如果是横向的时候,item的宽度需要注意去设置,毕竟横向的宽度没有约束了,应为控件可以横向滚动了。 如果你需要一样横向滚动的GridView,那么恭喜你。

1.6K10

手把手教你打造RecyclerView滚动特效

private int mAlphaViewId = NO_VIEW; // 图片变化视图 private int mImageViewId = NO_VIEW; // 边距变化视图 private...总高度(包含不可见部分)与RecyclerView可见部分的高度相差得到;而scrollY则随着RecyclerView滚动变化,因此需要对RecyclerView进行滚动事件的监听: recyclerView.addOnScrollListener...的滚动建立了关系;至此,动画与RecyclerView的逻辑关系梳理完毕。...当RecyclerView滑动太快时,单位滚动距离内,滚动监听事件的触发频率较低,导致有些Item的动画进度未达到100%便从屏幕中消失,从而存在重新滚动到那个Item时,Item的动画停留在1%~99%...在此,期望有耐心将本文看完的小伙伴们文章下方的评论里留下宝贵意见,一起来完善这个效果。另,若有小伙伴Github上看到有这样效果的稳定的第三方库,希望可以文章下方评论中留下链接。

2.4K10
领券