首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
ListView/RecyclerView什么情况下会卡顿,
[问答题]
ListView/RecyclerView什么情况下会卡顿,常用的优化手段有哪些?()
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(7)
分享
纠错
1个回答
添加回答
1
深藏冷瞳
ListView在以下情况会有卡顿:
1,listview的多层嵌套,多次的onMessure导致卡顿
2.ADapter数据列表的整体刷新,而非单个受影响的数据刷新(notifySetDataChanged)
3.在getView方法里inflate的row 嵌套太深(布局过于复杂)或者是布局里面有大图片或者背景所致
4,在getView方法里ViewHolder初始化后的赋值或者是多个控件的显示状态和背景的显示没有优化好,抑或是里面含有复杂的计算和耗时操作
5,Adapter的getView方法里面convertView没有使用setTag和getTag方式
对于此,首先要减少层级,对改变的数据单独刷新,减少复杂计算和耗时操作优化图片素材。减少自适应尺寸的组件数量
RecycleView在以下情况会有卡顿:
1,RecyclerView层级较高
2.RecyclerView布局不等高,需要在绘制item时频繁计算
3.单次缓存资源较多
4.
在onBindViewHolder/getView方法中,过多的逻辑判断,临时变量
5.数据列表的整体刷新,而非单个受影响的数据刷新
对于此,首先要减少层级,对改变的数据单独刷新,减少复杂计算和耗时操作优化图片素材。
对于不需要动态改变尺寸的item,设置为等高减少计算,
在onBindViewHolder/getView方法中,减少逻辑判断,减少临时对象创建
适当控制单次缓存数量
发表于 2019-10-23 20:38:31
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
安卓工程师
2018
货拉拉
来自:
货拉拉2018秋招An...
上传者:
小小
难度:
1条回答
7收藏
1457浏览
热门推荐
相关试题
通过构建有序序列,对于未排序数据,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(0)
找出与众不同的一个:()
2018
货拉拉
公关
管培生
评论
(6)
来自
货拉拉2018秋招管培生...
设一组初始记录关键字序列为(30,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
ANR产生的原因及解决方法?
安卓工程师
2018
货拉拉
评论
(0)
来自
货拉拉2018秋招And...
这里有两个表,请用SQL语句查询年...
iOS工程师
安卓工程师
2018
货拉拉
评论
(1)
来自
货拉拉2018秋招iOS...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题