Android recycleview 分割线彩蛋

android中RecyclerView的简单使用(二)——分割线 如果你觉得这些内容对你有帮助,可以扫码领取!!!! 阅读详情

我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。

首先上问题

怎么做?

当我们空余时间的时候,需要有外遇

实现

首先上问题
在这里插入图片描述
这是一个用 recycleview做的垂直列表,在列表的最底部,是紧贴屏幕的底部,但是我们需要留出一定的空间来处理,这样看来正常点。

怎么做?

比如在最后一种item的底部预留了一个高度50dp的view,adapter在bind数据的时候,根据position判断是否需要显示这个透明的50dp的view。这个操作是可以的,我以前也是这样做过。好像不太优雅,(管他呢,先把效果做出来了再说)

当我们空余时间的时候,需要有外遇

今天无意中在想,这样的一个底部view,也是属于一个item吧,可以这样理解。又想起了康师傅的ItemDecoration教程,具体视频地址找不到了(请原谅我),也就是我们可以在最后一个item的最后,画一条分割线,但是它是透明的分割线,这样就可以把底部的内容,顶上来了。1)如果你想用margin,padding来处理这个效果,是不美观的,底部会空出一块区域,不显示内容的。2)好像也想不出其他办法了。

实现

我们可以理解前面所有的分割线,都不画出来,就画最后一条

@Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { //我的的drawable对象 if (mDivider == null) { //这个偏移量是0 outRect.set(0, 0, 0, 0); return; } if (mOrientation == VERTICAL) { //处理垂直方向,获取最后一个item的position int lastPosition = state.getItemCount() - 1; //当前item的position int position = parent.getChildAdapterPosition(view); //当他大于等于最后一个的时候,其实不会出现大于的情况的 if (position >= lastPosition) { //把偏移量设置成我们drawable的高度 outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); } else { //除了最后一个分割线有高度,其他分割线高度都是0 outRect.set(0, 0, 0, 0); } } else { //可以不考虑水平方向,同理的 } }

上面是偏移最后一个,到我们再看看draw方法

@Override public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { if (parent.getLayoutManager() == null || mDivider == null) { return; } if (mOrientation == VERTICAL) { drawVertical(c, parent, state); } else { //我们不需要水平方向的,可以不写这个,当然也可以写 } }

private void drawVertical(Canvas canvas, RecyclerView parent, RecyclerView.State state) { canvas.save(); final int left; final int right; if (parent.getClipToPadding()) { left = parent.getPaddingLeft(); right = parent.getWidth() - parent.getPaddingRight(); canvas.clipRect(left, parent.getPaddingTop(), right, parent.getHeight() - parent.getPaddingBottom()); } else { left = 0; right = parent.getWidth(); }

final int childCount = parent.getChildCount(); final int lastPosition = state.getItemCount() - 1; for (int i = 0; i= lastPosition) { parent.getDecoratedBoundsWithMargins(child, mBounds); final int bottom = mBounds.bottom + Math.round(child.getTranslationY()); final int top = bottom - mDivider.getIntrinsicHeight(); mDivider.setBounds(left, top, right, bottom); mDivider.draw(canvas); } } canvas.restore(); }

drawable设置及喜欢的颜色,我这里需要透明,那就是#00000000. 以上

https://shimo.im/docs/dYkqrQcyr98jPKYX/ 《android学习面试fulutter进阶资料免费获取》,可复制链接后用石墨文档 App 或小程序打开。

基于STM32L4XX、HAL库的Ra-01SC-P LoRa模块驱动程序设计 0x22) { // SX1276/SX1278版本号。// 发射功率(2-20)// 工作频率(Hz)// 编码率(5-8) 阅读详情

相关推荐

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

Android 最强RecyclerView分割线XRecyclerViewDivider重磅来袭!!

目录前言一、分割线绘制原理二、XRecyclerViewDivider的功能1.LinearLayoutManager2.GridLayoutManager2.StaggeredGridLayoutManager总结 前言 沉浸在Android前端这几年里,接触最多的业务就是RecyclerView列表展示数据了,每次写到需要分割线时都是到网上copy,有时候一些分割线又不能满足需求,只能在布局上做文章。 虽然这样可以实现需求,但是总感觉这样写会写很多重复的代码,这边添加了View,那边又设置paddin

黄小梁的博客 3475

思科9117AP从零配置EWC模式实战:Wi-Fi6网络搭建避坑指南

本文详细介绍了思科9117AP在Wi-Fi6网络环境下配置EWC模式的实战指南,涵盖镜像准备、网络环境配置、模式转换步骤及高级运维技巧。通过EWC模式,企业可实现控制器与AP的一体化部署,显著降低成本和简化运维,特别适合中小企业Wi-Fi6网络搭建。

weixin_28318011的博客 333

【Android -- UI 开发】Recyclerview 的通用分隔线

ItemDecoration 是 RecyclerView 的一个抽象静态内部类,负责装饰 Item 视图,例如添加间距、高亮或者分组边界等。

Kevin Learn Android 1806

DDR ECC错误注入与寄存器配置实战指南

本文详细介绍了DDR ECC错误注入的核心价值与实战操作指南,包括通过FI_Dx和FI_ECC寄存器注入数据与ECC错误的方法。文章提供了环境准备、寄存器配置、错误检测及系统可靠性测试策略,帮助开发者验证内存系统的纠错能力和可靠性,提升硬件开发的稳定性与效率。

nnn11的博客 1104

2024年上市公司ESG评级全解析:六大权威数据源横向对比与应用指南

本文深度解析2024年国内主流ESG评级数据源,包括华证、商道融绿、Wind、富时罗素和彭博,横向对比其覆盖范围、评分逻辑与应用侧重点。文章提供实战指南,帮助投资者与企业根据投资决策、风险管理和学术研究等不同场景,精准选择并有效应用ESG数据,实现从概念到实用分析工具的转变。

weixin_29229055的博客 312

【Android】RecyclerView添加分割线最易懂解析

【Android】RecyclerView添加分割线最易懂解析 RecyclerView可以说是开发一个Android程序必不可少的一个控件,给它的item添加分割线也是一个几乎都会有的需求。但是,相对于曾经的ListView,RecyclerView添加分割线可就麻烦多了。网上的其他教程感觉又不是很好理解。所以一直也没有好好看个知识点。 平时自己一般都是直接给item下面加一个横线。每个it...

Jarvis的博客 1万+

快速上手springboot+vue的前后端分离项目

使用webStorm新建项目后,把 .lock文件删除后项目运行才不报错,配置文件 vue.config.js 中加入 lintOnSave: false 关闭eslint语法检测。在多层嵌套的父子组件之间传递状态已经十分麻烦,而Vue更是没有为兄弟组件提供直接共享数据的办法。基于这个问题,许多框架提供了解决方案——使用全局的状态管理器,将所有分散的共享数据交由状态管理器保管,Vue也不例外。其中一种解决CORS 的方法, 在springboot项目中跨域的方法或类加上@CrossOrigin注解。

m0_61950264的博客 1905

android 显示线方向,Android recycleview 分割线彩蛋

我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末。也欢迎各路大神门前来装X。首先上问题怎么做?当我们空余时间的时候,需要有外遇实现首先上问题这是一个用 recycleview做的垂直列表,在列表的最底部,是紧贴屏幕的底部,但是我们需要留出一定的空间来处理,这样看来正常点。怎么做?比如在最后一种item的底部预留了...

weixin_32149443的博客 130

用deepseek对GPU服务器进行压力测试

利用 DeepSeek 模型对 GPU 服务器进行压力测试,核心思路是通过,验证 GPU 服务器在计算、显存、网络等维度的承载能力,同时观察稳定性与性能瓶颈。

weixin_42795092的博客 1609

菱Q系列串行通信模块QJ71C24N:概述与特点

该模块支持多种串行通信协议,包括RS-232、RS-422和RS-485等,并提供了可靠的数据传输和高效的通信性能。菱Q系列串行通信模块QJ71C24N是一款功能强大的模块,具有多种通信协议支持、高速数据传输、多点通信能力和简化配置与使用等特点。简化配置和使用:QJ71C24N模块具有简单易用的配置工具和用户界面,使得用户能够快速进行模块的设置和调整。高速数据传输:QJ71C24N模块提供了高速的数据传输能力,可实现快速的数据交换和通信。本文将介绍QJ71C24N模块的概述和特点,并提供相应的源代码示例。

IunScala的博客 1931

RecyclerView系列之(2):为RecyclerView添加分隔线

一. 理解ListView和RecyclerView中的ChildView 在讲为Item加入分割线本质的前,先来介绍,认识一下ChildView,也就是平时我们用到的ListView,RecyclerView中的getChildAt(int position)这个返回的ChildView是哪一部分?到底是哪一部分呢?一开始的时候,我理解错了,但是经过下面两张图这么一比较,你就明白了:

AuthFailure的博客 1867

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android中RecyclerView的简单使用(二)——分割线,渣本逆袭大厂面经分享

i < 100;i++) {list.add("数据 " + i);//将适配器放到recyclerView上//创建线性布局管理者对象//通过manager对象设置显示方向//将管理者对象给recyclerView// 声明两个属性,接收传递过来的数据// 创建一个构造方法,将数据和activity的上下文传递过来// 返回显示的条目个数@Override@Override// 将父类的对象强转为子类对象。

2401_84148911的博客 1157

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android中RecyclerView简单使用和(Padding、分隔线、标签)设置

手机上面的通讯录联系人,不是所有的item都需要分割线,只有同组的第一个需要。在Activity中使用。

aidou1314的博客 609

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Android RecyclerView —— 自定义分割线

Android RecyclerView —— 自定义分割线 Android RecyclerView —— 基本使用 Android RecyclerView —— 适配器封装探索 前面说了 RecyclerView 的基本使用以及对适配器的封装,但是在使用 ListView 时,有 dividerHeight 和 divider 属性用来设置分割线的高度和颜色(Drawable),但是在 Re...

ITRenj的博客 3706

RecyclerView添加分割线

RecyclerView 并没有 divider 属性,但是我们可以通过 RecyclerView 的 addItemDecoration() 来添加分割线,该方法参数为 RecyclerView.ItemDecoration。 介绍 当 RecyclerView 添加 ItemDecoration 后,RecyclerView 在绘制每个 item 的时候,会去绘制 decorator,也就是会调用 ItemDecoration 的 onDraw() 和 onDrawOver() 方法。 Recyc

Makenna's World 4618

Android RecyclerView ItemDecoration 分割线

文章目录如何设置分割线DividerItemDecoration使用 如何设置分割线 RecycleView 没有像ListView一样可以直接在 xml 中或者通过 setDivider()方法设置分割线的方法。它是通过 RecycleView 的 addItemDecoration(ItemDecoration decor) 方法来设置的。很显然,我们需要传入一个 ItemDecoration 对象,这个对象是一个抽象类,官方已经提供了一种常用分割线类:DividerItemDecoration。来看一

赵彦军 3713

Android RecyclerView 详解(四) RecyclerView分割线的使用和分割线样式

Android RecyclerView 详解(四) RecyclerView分割线的使用 跟ListView不同的是RecyclerView没有提供给我们分割线,需要我们自己去实现,那么接下来将会介绍RecyclerView分割线的使用。 一、最简单的方法实现分割线 其实实现分割线的效果我们可以使用margin或者是padding来实现一个简单的分割线效果,这个

SuperBigLw的博客 7760

Android自定义RecyclerView分割线,打造无边缘分割线

前言:  现在的RecyclerView几乎已经完全取代ListView和GridView了,已经几年没使用ListView和GridView了,想当年还需要自己在getView方法中复用convertView。而现在的RecyclerView一出生就被设计成convertView复用的,尽管你不想复用(才怪)。RecyclerView功能如此强大的同时就会面临许多需求,如给RecyclerVi...

宿罪的博客 4180

RecyclerView的ItemDecoration总结

一、RecyclerView.ItemDecoration 基本用法 public class TestDividerItemDecoration extends RecyclerView.ItemDecoration { // 方法1:getItemOffsets (每出现一个position,调用一次) // 作用:设置ItemView的内嵌偏移长...

wusj的博客 586
上一篇: Flutter是个啥? 能帮Android工程师涨薪吗
下一篇: flutter GridView 九宫格
android1396
博客等级 码龄6年 4粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值