Android关于一个页面双列表内嵌gridview单选问题
来源:互联网 发布:玩具出租软件 编辑:程序博客网 时间:2024/06/05 20:08
Android关于一个页面双列表内嵌gridview单选问题
最近公司移动应用开发的时候,公司提出一个需求:一个Activity中左右两边各一个列表,每个列表的item中要现实两列数据也就是内嵌的GridView,然后实现整个页面的单选以及左右两个列表上下拖动以及左右滑动菜单功能。关于左右两边列表的上下拖动以及左右滑动菜单功能,我用的自定义RecyclerView,还是比较好实现的,如果有需要的,可以直接百度,看看别人的库研究下,自己写个自己常用的自定义View。说下如此页面的单选问题。使用方法1:比较粗暴直接。首先获取整个页面数据后,遍历左右两边列表数据,使用map集合或者list集合记录每个item中Gredview每项的初始状态,然后adapter刷新数据。在处理每个内嵌GridView的item点击时,更改所有list集合值,设置其中的选中标识,然后adapter刷新。但是在测试过程共,由于数据量大,整个页面刷新一次需要5s左右,神啊,就单选择一次等3秒才有效果,这是找骂的节奏。好吧,想办法改进下:1 每次先改变选中状态再去记录单选位置,这种测试过后,能稍微好点,但还是卡的不要不要的。接着来 2 不再使用list集合记录所有item状态了,只需要定义 三个变量 int type 用来区分左右两边列表int groupPosition 用来记录当前点击时RecyclerView的positionint childPosition 用来记录RecyclerView中GridView的item的position好了 修改完成,代码少了好多,没有了之前的不停遍历list(真累)。这个修改后发现,只改了当前item的状态,变成多选了,杯具啊。ok 再新增一个变量 List<ViewHolder> 用来存储每个GridView item的Holder,每做一次选择 只在holder中设置相应状态就行,因为是单选,那就只设置list中最后一个即可,其它状态修改为位选中状态即可。ok 基本上满足需求了。以上修改后,单选情况,真正实时选中了,无延迟。至于文章中,RecyclerView 的性能优化,后面在总结吧。其实关于上面的问题,还想到一种,只刷新GridView应该可以,但没时间测试了,只给了3小时(项目明天展示,希望公司顺利,没我啥事了,赶紧休息),已经弄的欲仙欲死了,晚上才抽空记录下自己想法,以便后续改进。ps 第一次写,希望自己以后能养成记录的好习惯!努力!
阅读全文
0 0
- Android关于一个页面双列表内嵌gridview单选问题
- android-ListView内嵌GridView
- Android 中 ScrollView 内嵌套 GridView问题
- python for android : 一个单选列表的天气预报例子
- 2017-6-14 关于使用history.go的问题!配合原生应用嵌入H5页面(只有一个webview的的单页应用)返回历史列表记录的问题
- 有关一个 iframe 的问题,关于在 iframe 内的页面内登录成功后,如何由当前页直接转到另一个页面内?
- 关于ScrollView内嵌GridView,ListView等滑动view的问题
- Android Fragment内嵌Fragment页面不刷新数据问题
- Android 实现单选列表
- android中的单选列表
- Android下ListView内嵌横向Gridview
- Android TV 关于gridview的焦点问题
- android ScrollView嵌套viewpager,viewpager嵌套gridview,解决内嵌无法显示的问题
- 关于Android 页面间或者页面内 的通信
- 关于邮件列表一个问题的解释
- 关于列表的一个小问题
- android列表视图切换:GridView和ListView两种方式来显示一个列表
- android列表视图切换:GridView和ListView两种方式来显示一个列表
- GemFire 入门篇2:GemFire 8.2 在CentOS & Mac OS X的安装步骤
- Javascript圣经学习Chap3.6~7
- H5研究三:图文混排的实现
- Spring整合jpa连接Oracle数据库向数据库中自动添加实体类表出现NullPointerException
- shishi
- Android关于一个页面双列表内嵌gridview单选问题
- Hololens开发基础知识
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- TCP传输控制协议
- 小米推送引入
- 链表-leetcode 138. Copy List with Random Pointer
- An entity object cannot be referenced by multiple instances of IEntityChangeTracker错误解决
- 通向架构师的道路(第七天)之漫谈使用ThreadLocal改进你的层次的划分
- VBA插入行和插入列的作用域