模仿微信群聊管理功能(头像管理效果)
在社交类应用开发中经常用到群管理功能,来约束访问范围。
本文讲述的是如何实现类似微信群聊时成员管理的UI效果。
先上效果图:
(添加状态)
(删除状态)
(添加成功)
UI效果概述:
1. +图标,单击添加一个头像。
2. 长按任意一个头像,进入删除状态,头像出现删除标识,+图标消失。此时单击头像图标,则该图标被删除。
3. 在删除状态下,单击空白区域,进入正常添加状态,删除标识消失,+图标出现。
实现思路:
用GridView来实现头像的布局显示。
GridView的Item布局用FrameLayout实现,删除标识固定在左上角并影藏。在代码中根据是删除状态还是添加状态控制删除标识的显示与否。
设置GridView的OnItemClickListener和OnItemLongClickListener来处理点击事件。
注意的一点是,GridView不能设置OnClickListener,因为会与OnItemClickListener冲突,那么怎么处理在删除状态下点击GridView的空白区域呢?
本文最后是用空白的Item填充了GridView的空白区域,这样点击空白区域触发的就是ItemClickListener。
这样处理会是Item的计算复杂一点,每次增加,删除一个头像,删除状态和正常状态的变换,都需要考虑是否要换行(或者减少一行)和重新计算空白的Item个数。
具体计算规则请看源码
https://github.com/devxiaobai/headman
写的比较匆忙,有任何错误,请见谅。
devxiaobai。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库