首页
学习
活动
专区
圈层
工具
发布

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

) 1、onDraw() 方法 onDraw方法 : 在提供给 RecyclerView 的画布上绘制合适的装饰 , 在该方法中绘制的任何内容, 都在 item 布局组件绘制之前绘制, 绘制的内容都被...RecyclerView 的画布上绘制合适的装饰, 在该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, 显示在 item 布局上层 ; void onDrawOver...* 在该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, * 显示在 item 布局上层..../** * 在提供给 RecyclerView 的画布上绘制合适的装饰...* 在该方法中绘制的任何内容, 都在 item 布局组件绘制之后绘制, 绘制的内容会覆盖 item 布局, * 显示在 item 布局上层.

1.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Android从零单排系列四十七】《Android中自定义adapter的实现方法》

    适配器通常用于列表、网格及其他可滚动视图的数据绑定。 适配器的主要作用包括: 数据转换:适配器将原始的数据源转换为可以在 UI 控件中展示的数据项。...视图创建:适配器负责根据数据项的布局要求创建相应的 UI 视图元素,并提供给父容器进行显示。 数据绑定:适配器将数据项的内容绑定到相应的 UI 视图上,确保正确地显示数据。...可以创建单独的布局文件用于数据项的展示,也可以通过代码创建视图元素。视图布局决定了每个数据项在 UI 中的显示方式。...使用视图元素的方法(如 TextView、ImageView 等)获取相应的 UI 控件,并将数据项的内容设置到对应的控件上。 提供数据源:适配器通常需要有一个数据源作为输入,提供给适配器使用。...可以通过构造方法传入数据源,或者在适配器内部定义变量来存储数据源。 使用自定义适配器:在需要显示数据的界面上,实例化并使用自定义适配器。

    1.5K10

    RecyclerView 分页功能

    从开发者的角度来看,如何加载所有内容?一次不可能显示很多的内容。我们只能显示它们的部分。 分页允许用户看到最新的内容,等待时间很少。...如果您从数据库中提取数据,请分批请求数据(每个请求20个)。同样的情况也适用于API调用。...1、ProgressDialog在取得初始数据的同时在空白屏幕上显示加载进度 2、隐藏ProgressDialog和显示数据 3、检测用户滚动到列表的末尾 4、ProgressDialog在提取下一页数据时在页脚显示...接下来,将获取的数据添加到适配器并通知更新。PaginationAdapter中的addAll()方法完成了此操作。...它需要LayoutManager提供给RecyclerView来计数和比较它的数量。这更准确地知道在布局中实际有多少项目,而不是计算List 。

    3.4K30

    Android Material Design系列之RecyclerView和CardView

    RecyclerView、CardView为用于显示复杂视图的新增Widget。接下来看看如何使用吧。...是复用的,在RecyclerView中,是把ViewHolder作为缓存的单位了,然后convertView作为ViewHolder的成员变量保持在ViewHolder中,也就是说,假设手机屏幕可显示10...ItemAnimator:ItemAnimator简单来说是会根据适配器上收到的相关通知去动画的显示组件的修改,添加和删除等。它会自动添加和移除item的动画。自带的默认效果也不错,已经非常好了。...建议大家参考: Android新组件RecyclerView介绍,其效率更好(可点击) 更多推荐: 偷懒新姿势,打造属于RecyclerView的万能适配器Adapter和ViewHolder 一种新的...很可惜的是,RecyclerView并没有像ListView那样提供给我们addFooterView()那样的方法,那该如何实现呢?

    2.9K80

    Android | Tangram动态页面之路(二)介绍

    常规的RecyclerView使用: // 设置适配器,管理数据源和view recyclerView.setAdapter() // 设置LayoutManager,指定布局方式 recyclerView.setLayoutManager...这样实现了混合布局的能力,并且支持扩展外部,注册新的LayoutHelper,实现特殊的布局方式。...在vlayoutDemo中,使用代码是这样, //VLayoutActivity.java //子适配器集合 List adapters = new...则应该下沉到基础库里全局注册,更抽象的Cell意味着需要提供更为通用的配置属性,能提供给更多不同的业务方使用。...值得注意的是,TangramDemo里的json模板都是包含了业务数据的,这么做可能是为了剔除掉网络请求的代码,方便开源学习,而在实际业务中不太可能把数据绑定在模板里,这样模板会很臃肿,我们要做的是,用模板描述页面结构和数据源

    1.1K21

    安卓开发——Recycleview

    的使用 在使用RecyclerView时候,必须指定一个适配器Adapter和一个布局管理器LayoutManager。...简而言之,Adapter就是数据与ui之间的桥梁,它把数据与前端ui连接到一起,是一个展示数据的载体。...weixinRecycleViewAdapter 微件之后,需要获取对象句柄,将其连接到布局管理器,并为要显示的数据附加适配器 创建适配器实现步骤如下: ① 创建Adapter:创建一个继承RecyclerView.Adapter...的Adapter类 ② 创建ViewHolder:在Adapter中创建一个继承RecyclerView.ViewHolder的静态内部类。...方法提供给你了一viewHolder而不是原来的convertView 3. getItemCount() 这个方法就类似于BaseAdapter的getCount方法了,即总共有多少个条目。

    3K11

    Android 天气APP(三十)分钟级降水

    ---- 分钟级降水 前言 正文 一、新增分钟级降水API 二、修改布局 三、增加适配器 四、增加网络请求与回调 五、控件初始化、数据请求和返回 六、动画展开收缩效果 七、运行GIF效果图 文末 --...首先是和风天气更新的新的分钟级降水API,这个是可以提供给开发者免费调用的。话不多说了,进入正文。...这个API和其他的API略有不同,需要使用经纬度作为请求参数,并且经度和纬度的值用英文逗号分隔开,经度在前,纬度在后,如果你不按照这个方式来的话,就会出现报错400、403之类的。...② 通过和风天气的城市搜索获取。 这里我们使用第二种方式来获取经纬度,那么就是在搜索城市的返回值中拿到经纬度之后去请求分钟级降水的的接口,获取数据之后显示出来。...三、增加适配器 有布局了,然后就是写列表的适配器了,不然数据怎么填充进去呢?

    83520

    Android的ListView和RecyclerView的基本用法

    控件)来说,比如说ListView只能竖向滚动显示数据,不能横向滚动显示数据,在一些特殊的需求中,ListView就无能为力了。...在Android5.0版本之后,Android官方推出了一个新的控件:RecyclerView ,完全解耦的设计使得RecyclerView比起ListView灵活了太多,应用的场合也非常广泛。...,我们添加了一个ListView控件,用于接下来的数据显示,之后我们要新建一个布局文件用于显示ListView中的项目数据 color_item.xml: 适配器类继承于 ArrayAdapter 类来实现 ListView 控件的数据显示, * ListView 控件只有设置了适配器才能显示数据 */ public class ColorAdapter...中我们用一个initAdapter方法来初始化ListView需要显示的数据信息,之后将数据信息加入ColorAdapter对象中并且设置ListView控件的适配器为ColorAdapter对象。

    1.9K50

    Android新组件RecyclerView介绍,其效率更好

    简单来说就是:RecyclerView是一种新的视图组,目标是为任何基于适配器的视图提供相似的渲染方式。...3、RecyclerView优点和缺点 优点: RecyclerView本身它是不关心视图相关的问题的,由于ListView的紧耦合的问题,google的改进就是RecyclerView本身不参与任何视图相关的问题...所有关于布局、绘制和其他相关的问题,也就是跟数据展示相关的所有问题,都被委派给了一些”插件化”的类来处理。这使得RecyclerView的API变得非常灵活。你需要一个新的布局么?...你想要不同的动画么?接入一个新的ItemAnimator就可以了,诸如此类等等。 缺点: 在RecyclerView中,没有一个onItemClickListener方法。...具体操作在适配器代码中就可以体现。 整体总结它的几点如下: Adapter:包装数据集合并且为每个条目创建视图。 ViewHolder:保存用于显示每个数据条目的子View。

    1.9K90

    Kotlin入门(23)适配器的进阶表达

    前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象。...视图持有者的设计理念固然美好,却苦了Android开发者,每次由BaseAdapter派生新的适配器类,都必须手工处理视图持有者的相关逻辑,实在是个沉重的负担。...开发者继承RecyclerView.Adapter之后,只要完成业务上的代码逻辑即可,无需进行BaseAdapter视图持有者的手工重用。...,运行之后的界面效果如下图所示,无缝实现了原来需要数十行Java代码才能实现的功能。...即使修改后的适配器代码用了新插件,外部仍旧同原来一样给循环视图设置适配器,调用代码并无任何变化:     //第一种方式:使用采取了LayoutContainer的插件适配器     val adapter

    2.7K41

    ng6中,在HTTP拦截器里,异步请求数据,之后再返回拦截器继续执行用户请求的方法研究

    那么如何监测用户是在“连续活动”的时候,且当前token超时后,系统能自动获取新token,并且在之后请求中使用该新token呢?...简化一下表述:如何在拦截里中,判断token失效了能自动请求新token,并且把新token赋予当前的拦截请求中去。...       这个是难处理的,因为当前拦截器急迫的需要你返回一个Observable对象,但你需要先异步走,请求到新token后, 把新token应用回当前拦截器。  ...subscribe()回调获取新token数据 async reTokenAsync(req: HttpRequest, next: HttpHandler, sub: Subject在重新获取token后,让原业务请求重新发生,并用要subscribe()一下。

    2.6K20

    【Android】RecyclerView实现新闻列表布局(1)适配器使用相关问题

    做一个这样的新闻列表 (1)源码 二:用RecyclerView完成一个列表式布局 1:依赖添加 RecycleView也属于三方工具,老工程可能需要添加依赖 工程比较新,就无需添加依赖了,它已经集成在...holder, int position) { } /** * @return 告诉RecyclerView显示多少条数据 */ @Override...onCreateViewHolder “视图持有者” ,可以理解成一个杯子,而item数据可以理解成咖啡 作用:创建新的 ViewHolder 对象 参数: parent:RecyclerView...类型的 item 数量 触发时机:RecyclerView 需要知道数据量时调用 5:onCreateViewHolder() 的调用时机和次数 初始加载时:当 RecyclerView 显示,会根据屏幕能容纳的...绑定新位置的数据(比如滑出屏幕的 item1 的 ViewHolder,会被重新绑定 item11 的数据)。

    22010

    Android MVI框架搭建与使用

    本文完成后的效果图: 正文   每当一个新的框架出来,都会解决掉上一个框架所存在的问题,但同时也会产生新的问题,瑕不掩瑜,可以在实际开发中,解决掉产生的问题,就能够更好的使用框架,那么MVI解决了MVVM...作为网络接口请求的地址头,然后构建了MoShi,通过MoShi去进行JSON转Kotlin数据类的处理,之后就是构建Retrofit,将MoShi设置进去,最后就是通过Retrofit创建一个网络请求服务...,下面来进行使用,简单来说,请求数据然后渲染出来,因为这里请求的是壁纸数据,所以我需要写一个适配器。...observeViewModel()函数中是对状态的收集,在状态为Loading,隐藏按钮,显示加载条,然后网络请求会有结果,如果是成功,则在UI上隐藏按钮和加载条,显示列表控件,并添加数据到适配器中,...然后刷新适配器,数据就会渲染出来;如果是失败则显示按钮,隐藏加载条,打印错误信息并提示一下。

    5.1K62

    【RecyclerView】 十三、RecyclerView 数据更新 ( 移动数据 | 数据改变 )

    和 结构性改变 ; ① item 元素改变 : 指的是单个的 item 的数据更新 , 但是位置没有改变 ; ② 结构性改变 : 指的是有新的数据被插入 , 删除 , 移动 , 位置发生了改变 ; 参数说明...: int positionStart 参数 : 被修改的元素在原数据集中首个元素的位置索引 ; int itemCount 参数 : 数据集中被修改元素个数 ; 注意 : 该方法不指定数据集发生了哪些变化..., 通知数据发生了改变 , RecyclerView 会尝试去 为适配器 同步可见的结构性改变事件 ; 这样有助于动画和可视化对象的持续 , 但是单独的 item 元素组件需要重新被绑定 ; 代码示例...item 的数据更新 , 但是位置没有改变 ; * 结构性改变指的是有新的数据被插入 , 删除 , 移动 , 位置发生了改变 ; * * 该事件不指定数据集发生了哪些变化...; * * 如果适配器调用了本方法 , 通知数据发生了改变 , RecyclerView 会尝试去 为适配器 同步可见的结构性改变事件 ;

    4.5K00
    领券