| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android格子视图的另外一种实现方式之AutoLineLayout与AutoLineDeleteView -> 正文阅读 |
|
[移动开发]Android格子视图的另外一种实现方式之AutoLineLayout与AutoLineDeleteView |
宫格视图LatticeApp让开发再变得简单些!AutoLineLayout 我叫它自动换行标签视图,一般用于编辑、展示标签,类似于很多app让你选择兴趣爱好,给自己或者给他人打上一些标签。该控件给予用户高度自定义的空间,可以只负责展示标签,也可以删除添加标签,你可以设置它的字体大小,选中之后的字体大小,字体颜色,选中之后的字体颜色,背景已经选中之后的背景,还可以设置多选、单选与不选,当一行已经显示不下的时候,会自动换行处理。 我们来看看效果 预览状态编辑删除状态单选状态复选状态下面我们看看如何具体的调用这个控件。 加载数据
tags是一个List集合,一般我们从后台拿到数据之后会将其封装成一个实体,我们只需要将实体类继承于KVBean,就能传递参数,操作AutoLineLayout控件了,我们看源码是怎么写的。 原来使用了泛型进行了类型约束,KVBean里面又有什么呢,看下图: 封装数据的事例现在我们创建一个类并继承KVBean,如下:
定义的 i 参数我们不用管。看下面代码
以上就是模拟数据加载的全过程。 接下来我们需要把数据显示出来, 还需要配置一些参数给到AutoLineLayout或者AutoLineDeleteView 配置项AutoLineLayout.AutoEditParams继承BaseLatticeView.ImageTextParams看源码中是怎么说的。如下图: 我们需要注意的是autoEditParams.isShowDelImg字段,这个字段是提供给AutoLineLayout的子类AutoLineDeleteView使用的,所以AutoLineLayout并不关心它的值,isShowDelImg 该值如果为false则delImg与IsDelImgLeft都无效,只有当isShowDelImg =true的时候delImg,IsDelImgLeft才会生效。 isShowDelImg : 是否显示删除图片; 这3个字段在使用AutoLineDeleteView有效,当你使用AutoLineLayout时,就算你设置了这三个参数也不会生效。 上图中的width是必须设置的,否则无法启用该控件,sel_type看上图的注释写的非常清楚,如果我们不需要设置单选多选,我们就不去设置它,让它为0, 那我们接下来看代码:
以上就完成了自动换行标签视图的加载与展示。 启用编辑模式(删除模式)
启用复选模式
得到已经选中的Item
点击事件于删除事件的监听ao_del_layout.setOnDelectTagListener() 监听删除事件 注意AutoLineDeleteView.OnDelectTagListener 其中ReKVBean必须是继承了KVBean的实体,或者就是KVBean本身。
在布局文件中的引用
用法在app->build.gradle文件下 -> dependencies中引入
在app->build.gradle文件下 -> android 中加入如下代码
为了能顺利加载成功,我们需要做如下操作,在根目录build.gradle文件下->buildscript下加入如下代码
在build.gradle文件根目录下加入如下代码
结束语: AutoLineDeleteView 继承于 AutoLineLayout, AutoLineDeleteView比AutoLineLayout只多了删除的功能。 如果你不需要删除编辑,那么使用AutoLineLayout就可以了。 宫格视图demo 下载地址是github上的,可以下载源码看一下。 如果您还没有看过上一篇可以点击 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 19:34:34- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |