当前位置: 首页 > news >正文

【Android】BRVAH多布局实现

前言

基于3.0.4版本的BRVAH框架实现的

实现方法

1.创建多个不同类型的布局(步骤忽略)
2.创建数据实体类

数据类要实现【MultiItemEntity】接口

class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? = null,var tractorTitle: String? = null,// 4-set 第一种布局需要的数据var fourSetFirstName: String? = null,var fourSetSecondName: String? = null,var fourSetThreeName: String? = null,var fourSetFourName: String? = null,// 5-set 第二种布局需要的数据var fiveSetFirstName: String? = null,var fiveSetSecondName: String? = null,var fiveSetThreeName: String? = null,var fiveSetFourName: String? = null,var fiveSetFiveName: String? = null,// 6-set 第三种布局需要的数据var sixSetFirstName: String? = null,var sixSetSecondName: String? = null,var sixSetThreeName: String? = null,var sixSetFourName: String? = null,var sixSetFiveName: String? = null,var sixSetSixName: String? = null
) : MultiItemEntity {//设置三个字段(因为有三种布局)companion object {const val TRACTOR_ITEM_FOUR = 0const val TRACTOR_ITEM_FIVE = 1const val TRACTOR_ITEM_SIX = 2}//使用此构造方法构建第一种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String) : this(itemType) {this.tractorRes = resthis.tractorTitle = titlethis.fourSetFirstName = firstthis.fourSetSecondName = secondthis.fourSetThreeName = threethis.fourSetFourName = four}
//使用此构造方法构建第二种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String,five: String) : this(itemType) {this.tractorRes = resthis.tractorTitle = titlethis.fiveSetFirstName = firstthis.fiveSetSecondName = secondthis.fiveSetThreeName = threethis.fiveSetFourName = fourthis.fiveSetFiveName = five}
//使用此构造方法构建第三种布局的数据源constructor(itemType: Int,res: Int,title: String,first: String,second: String,three: String,four: String,five: String,six: String) : this(itemType) {this.tractorRes = resthis.tractorTitle = titlethis.sixSetFirstName = firstthis.sixSetSecondName = secondthis.sixSetThreeName = threethis.sixSetFourName = fourthis.sixSetFiveName = fivethis.sixSetSixName = six}
}
3.创建Adapter

需要继承自【BaseMultiItemQuickAdapter】

class SteerAdapter(val list: MutableList<MyMultiItemEntity>,
) :BaseMultiItemQuickAdapter<MyMultiItemEntity, BaseViewHolder>(list) {init {addItemType(MyMultiItemEntity.TRACTOR_ITEM_FOUR,R.layout.item_tractor_second_four_sets)addItemType(MyMultiItemEntity.TRACTOR_ITEM_FIVE,R.layout.item_tractor_second_five_sets)addItemType(MyMultiItemEntity.TRACTOR_ITEM_SIX,R.layout.item_tractor_second_six_sets)}override fun convert(holder: BaseViewHolder, item: MyMultiItemEntity) {when (holder.itemViewType) {MyMultiItemEntity.TRACTOR_ITEM_FOUR -> {}MyMultiItemEntity.TRACTOR_ITEM_FIVE -> {}                    MyMultiItemEntity.TRACTOR_ITEM_SIX -> {}
}

使用

//        binding.rvList.layoutManager = LinearLayoutManager(context)
//        val myAdapter = SteerAdapter(list)
//        val dp10 = requireContext().resources.getDimensionPixelSize(R.dimen.dp_10)
//        val itemDecoration = object : RecyclerView.ItemDecoration() {
//            override fun getItemOffsets(
//                outRect: Rect,
//                view: View,
//                parent: RecyclerView,
//                state: RecyclerView.State
//            ) {
//                outRect.bottom = dp10
//            }
//        }
//        binding.rvList.addItemDecoration(itemDecoration)
//        binding.rvList.adapter = myAdapter

基本上主要代码就这么多,基本上对着官方代码来就可以了,但是有一点就是官方代码对于数据类的构建讲的比较粗略,这篇笔记也是对这个进行补充吧。

相关文章:

【Android】BRVAH多布局实现

前言 基于3.0.4版本的BRVAH框架实现的 实现方法 1.创建多个不同类型的布局&#xff08;步骤忽略&#xff09; 2.创建数据实体类 数据类要实现【MultiItemEntity】接口 class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? null,va…...

AWS SAP-C02教程9-节省成本

SAP-C01变成SAP-C02的时候,最大的变化就是没有把成本单独列出一个模块,但是成本依然包含在各个其它模块之中,所以成本还是很重要的。本章将列举一些成本优化方案以及一些成本辅助功能。 目录 1 Cost Allocation Tags2 Trusted Advisor2.1 AWS Support Plans2.2 基本特性2.3…...

[CSP-S 2023] 种树 —— 二分+前缀和

This way 题意&#xff1a; 一开始以为是水题&#xff0c;敲了一个二分贪心检查的代码&#xff0c;20分。发现从根往某个节点x走的时候&#xff0c;一路走来的子树上的节点到已栽树的节点的距离会变短&#xff0c;那么并不能按照初始情况贪心。 于是就想着检查时候用线段树…...

【LeetCode周赛】LeetCode第368场周赛

目录 元素和最小的山形三元组 I元素和最小的山形三元组 II合法分组的最少组数 元素和最小的山形三元组 I 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件&#xff0c;则认为它是一个山形三元组 &#xff1a; i < j < k nums[i] &l…...

【智慧工地源码】基于AI视觉技术赋能智慧工地

伴随着技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点&#xff0c;所以…...

云服务器搭建Hadoop分布式

文章目录 1.服务器配置2.Java环境3. 安装Hadoop4. 集群配置5. 编写集群的启动脚本 1.服务器配置 服务器主机名配置115.157.197.82s110核115.157.197.84s210核115.157.197.109s310核115.157.197.31s410核115.157.197.60gracal10核 所有的软件安装在/opt/module下&#xff0c;软…...

2678. 老人的数目

给你一个下标从 0 开始的字符串 details 。details 中每个元素都是一位乘客的信息&#xff0c;信息用长度为 15 的字符串表示&#xff0c;表示方式如下&#xff1a; 前十个字符是乘客的手机号码。 接下来的一个字符是乘客的性别。 接下来两个字符是乘客的年龄。 最后两个字符是…...

【刷题-牛客】出栈、入栈的顺序匹配 (代码+动态演示)

【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 文章目录 【刷题-牛客】出栈、入栈的顺序匹配 (代码动态演示) 解题思路 动图演示完整代码多组测试 &#x1f497;题目描述 &#x1f497;: 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个…...

vscode类似GitHub Copilot的插件推荐

由于GitHub Copilot前段时间学生认证的账号掉了很多&#xff0c;某宝激活也是价格翻了几倍&#xff0c;而却&#xff0c;拿来用一天就掉线&#xff0c;可以试试同类免费的插件哦。 例如&#xff1a;TabNine&#xff0c;下载插件后&#xff0c;他会提示你登录&#xff0c;直接登…...

Html -- 文字时钟

Html – 文字时钟 文字时钟&#xff0c;之前在Android上实现了相关效果&#xff0c;闲来无事&#xff0c;弄个网页版的玩玩。。。直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…...

快问快答:关于线上流量卡“归属地随机”几个问题!

在网上办过流量卡的朋友应该都知道&#xff0c;资费虽然便宜&#xff0c;但是归属地却是异地&#xff0c;今天小编就给大家聊一聊关于流量卡归属地的问题。 ​ 网上的流量卡都是归属地随机的卡&#xff0c;今天小编以问答的方式给大家普及一下&#xff0c;如果对于归属地有疑问…...

Linux常用命令——clock命令

在线Linux命令查询工具 clock 用于调整 RTC 时间。 补充说明 clock命令用于调整 RTC 时间。 RTC 是电脑内建的硬件时间&#xff0c;执行这项指令可以显示现在时刻&#xff0c;调整硬件时钟的时间&#xff0c;将系统时间设成与硬件时钟之时间一致&#xff0c;或是把系统时间…...

澎湃OS上线:小米告别MIUI,跟小米汽车Say Hi

作者 | Amy 编辑 | 德新 10月17日&#xff0c;雷军发博官宣&#xff0c;「小米将启用全新操作系统&#xff0c;小米澎湃OS&#xff08;Xiaomi HyperOS&#xff09;」。 短短几百字的微博&#xff0c;数次提到了「小米汽车」&#xff1a; 小米向人车家全生态迈进&#xff0c;…...

域名不部署SSL证书有什么影响?

SSL证书是保护网站数据传输安全的重要工具&#xff0c;通过加密用户和服务器之间的通信来确保数据的保密性和完整性。然而&#xff0c;如果一个域名没有部署SSL证书&#xff0c;会对网站和用户产生一系列的负面影响。下文中将介绍域名不部署SSL证书的影响&#xff0c;并提供相应…...

Delphi 编程实现拖动排序并输出到文档

介绍&#xff1a;实现拖动排序功能&#xff0c;并将排序后的内容输出到文档中。我们将使用 Delphi 的组件来创建一个界面&#xff0c;其中包括一个 Memo 控件用于输入内容&#xff0c;一个 ListBox 控件用于显示排序后的内容&#xff0c;并且提供按钮来触发排序和输出操作。 代…...

android利用FFmpeg进行视频转换

大致思路&#xff1a;首先安装FFmpeg库到windows电脑上&#xff0c;先测试命令行工具是否可以使用&#xff08;需要先配置环境&#xff09;&#xff0c;之后再集成到android程序中。 一些命令&#xff1a; 转化为流文件&#xff1a; ffmpeg -i input.mp4 -codec copy -bsf:v …...

Python中不同进制间的转换

Python中不同进制间的转换 一、不同进制在计算机科学、数学和其他领域中具广泛的应用。以下是一些常见的应用&#xff1a;1. 二进制&#xff08;base-2&#xff09;: 在计算机系统中&#xff0c;数据以二进制形式存储和处理。二进制由0和1组成&#xff0c;是数字电子技术的基础…...

物流监管:智慧仓储数据可视化监控平台

随着市场竞争加剧和市场需求的不断提高&#xff0c;企业亟需更加高效、智能且可靠的仓储物流管理方式&#xff0c;以提升企业的物流效率&#xff0c;减少其输出成本&#xff0c;有效应对市场上的变化和挑战。 图扑自研 HT for Web 产品搭建的 2D 智慧仓储可视化平台&#xff0c…...

C++对象模型(19)-- 函数语义学:成员函数

1、普通成员函数的调用 1.1 调用方式的转换 为了提高普通成员函数的调用效率&#xff0c;在C中&#xff0c;对普通成员函数的调用&#xff0c;会转换成对全局函数的调用。 假如有下面所示的成员函数&#xff1a; class Test { public:int m_i;int func(int a) {m_i a;retu…...

AI只需26秒,就可以设计一款会走路的机器人

由西北大学、麻省理工学院和佛蒙特大学组成的一支科研团队首次开发出一种可以完全自行设计机器人的 AI 算法。 这一 AI 算法不仅运行速度快&#xff0c;还可在个人计算机上运行&#xff0c;并从头开始设计全新的结构。只需告诉AI“我们想要一个可穿越陆地的机器人”&#xff0c…...

【会议征稿通知 | 重庆大学、重庆交通大学联合主办 | SPIE出版 | EI 、Scopus稳定检索】第六届智能交通系统与智慧城市国际学术会议(ITSSC 2026)

EI Compendex、Scopus稳定检索&#xff0c;往届已EI检索 第六届智能交通系统与智慧城市国际学术会议&#xff08;ITSSC 2026&#xff09; 2026 6th International Conference on Intelligent Traffic Systems and Smart City 2026年8月28-30日丨中国重庆-中科院重庆科学中心…...

局域网内开发板通过代理服务器共享WiFi上网的完整配置指南

1. 为什么需要开发板共享WiFi上网&#xff1f; 很多嵌入式开发者都遇到过这样的场景&#xff1a;开发板通过网线连接到局域网交换机&#xff0c;但交换机没有外网接入&#xff0c;而你的笔记本电脑却连着WiFi可以正常上网。这时候如果开发板需要安装软件包或者访问网络资源&…...

人工智能Ai图像识别之纸箱破损图像识别 纸箱缺陷识别 纸箱潮湿识别 纸箱状态识别图像数据集 第10336期

纸箱缺陷图像识别数据集类别 Classes (4) 类别&#xff08;4&#xff09; carton box 纸箱 cracked carton box 破损的纸箱 opened carton box 打开的纸箱 wet carton box 湿纸箱数据集核心信息表信息类别具体内容数据集类别包含 4 类纸箱目标&#xff1a;carton box&#xff0…...

AIAgent与人类协作的4个致命断点,92%团队正在踩坑,SITS2026实战专家手把手修复(含可即插即用的协作SOP模板)

第一章&#xff1a;SITS2026专家&#xff1a;AIAgent与人类协作模式 2026奇点智能技术大会(https://ml-summit.org) 协作范式的根本转变 传统人机交互以“指令-执行”为单向闭环&#xff0c;而SITS2026框架定义的AIAgent已进化为具备意图解析、上下文记忆与协同推理能力的认知…...

IndexTTS 2.0问题解决:多音字发音不准?用拼音标注一键搞定

IndexTTS 2.0问题解决&#xff1a;多音字发音不准&#xff1f;用拼音标注一键搞定 1. 多音字问题&#xff1a;语音合成的常见痛点 在中文语音合成领域&#xff0c;多音字问题一直是个令人头疼的技术难点。想象一下&#xff0c;当你用AI生成"银行行长在银行门口行走"…...

AI编程革命:用Codex高效生成脚本

告别重复造轮子&#xff1a;Codex写脚本的技术文章大纲引言重复造轮子的定义及其在开发中的常见问题自动化工具如何帮助开发者提高效率Codex 的简介及其在脚本编写中的应用潜力Codex 的核心能力自然语言理解与代码生成支持多种编程语言&#xff08;Python、JavaScript、Bash 等…...

keil工程点击build报错FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘

kile工程链接时报错FCARM - Output Name not specified, please check ‘Options for Target - Utilities’ 问题&#xff1a;拷贝了一个keil模板例程&#xff0c;对其中地一些代码文件路径做了调整&#xff0c;并重新添加了代码文件。编译没报错&#xff0c;点击buile链接时报…...

[具身智能-364]:LeRobot 不是通用机器人控制系统(如 ROS2 导航/规划栈),而是专注于“感知-决策-动作”端到端学习的 AI 框架。他们共同成为具身智能时代最重要的开源基础设施之一

LeRobot 与 ROS2 并非替代关系&#xff0c;而是“智能生成”与“可靠执行”的双轨架构。二者共同构成了下一代机器人从“实验室原型”走向“物理世界部署”的基石。以下从定位差异、架构协同、融合挑战、演进趋势四个维度进行系统阐述。&#x1f50d; 一、核心定位与设计哲学&a…...

如何在Android应用中集成AnimationEasingFunctions:5分钟快速开始教程

如何在Android应用中集成AnimationEasingFunctions&#xff1a;5分钟快速开始教程 【免费下载链接】AnimationEasingFunctions Android Animation Easing Functions. Lets make animation more real! 项目地址: https://gitcode.com/gh_mirrors/an/AnimationEasingFunctions …...

什么是本体:从概念体系到形式化建模

在知识图谱、语义网和知识表示中&#xff0c;本体&#xff08;Ontology&#xff09;是一个核心概念。初学者常把本体理解为术语表、分类表&#xff0c;或若干概念名称的集合&#xff0c;但这种理解并不完整。本体真正关心的&#xff0c;不只是“有哪些概念”&#xff0c;而是“…...