ListView滑动流畅性优化
来源:互联网 发布:计算机算法与数学模型 编辑:程序博客网 时间:2024/04/30 00:36
自定义Adapter
public View getView(final int position,
ViewconvertView,
ViewGroupparent)
1、 布局视图复用
ListView中的getView原理
• 工作原理:
ListView 针对List中每个item,要求 adapter “给我一个视图” (getView)。
如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图?NO!
实际上Android为你缓存了视图。有个叫做Recycler的构件
Void getView(final int position, ViewconvertView, ViewGroup
parent){
View myView = convertView;
ViewHolder viewHolder = null;
if (myView == null) {
viewHolder = new ViewHolder();
myView = initChatView(
viewHolder, type,parent); // bad findViewById !
myView.setTag(viewHolder);
} else {
viewHolder =(ViewHolder) myView.getTag();
}
//复杂逻辑······
}
2、Mask复用
public void onMaskChanged(String key,Bitmap newMask) {
// TODO Auto-generated method stub
if(maskMap == null){
maskMap = new HashMap<String, Bitmap>();
}
maskMap.put(key, newMask);
}
public Bitmap getMask(String key) {
// TODO Auto-generated method stub
if(maskMap != null){
return maskMap.get(key);
}else{
return null;
}
}
3、优化getView中的算法
• 每次滑动ListView列表控件都会触发连续的getView操作
• 如果感觉滑动时很卡,从下面查找原因:
(1)getView中的计算时间过长(如大量使用
findViewById来查找子控件等)。
(2)getView中发生了内存泄漏,导致滑动列表时
内存占用急剧增加,直至ANR发生。
(3)没有复用回收的view。
(4)单个item的布局嵌套层次过深。
- ListView滑动流畅性优化
- Android进阶:ListView性能优化异步加载图片 使滑动效果流畅
- Android进阶:ListView性能优化异步加载图片 使滑动效果流畅
- ListView性能优化异步加载图片 使滑动效果流畅(转载)
- Android进阶:ListView性能优化异步加载图片 使滑动效果流畅
- android中ListView性能优化异步加载图片 使滑动效果流畅
- ListView加载网络图片优化(加二级缓存使滑动流畅)
- Android进阶:ListView性能优化异步加载图片 使滑动效果流畅
- 关于ListView滑动加载不流畅
- Android Developers:使ListView滑动流畅
- ListView终极优化方法,绝对流畅
- ListView最终优化方法,绝对流畅
- ListView终极优化方法,绝对流畅
- 优化ListView以提升流畅度
- iOS开发优化tableView滑动流畅性的集中常用方法
- [翻译]android中如何使得ListView滑动流畅
- ListView流畅
- UITableView滚动流畅性优化
- 使用Java语言编写一款日记软件
- ggplot2-为折线图和条形图添加误差线
- 26 利用switch语句解决问题 【项目1:投票表决器】【项目2:成绩等级】【项目3:分段函数求值switch语句版】【项目4:本月有几天?】【项目5:个人所得税计算器switch语句版】
- git在国外项目管理平台https://tourscn.codebasehq.com上的使用
- 算法导论----<二分法改进递归插入算法>及实例
- ListView滑动流畅性优化
- leetcode 263. Ugly Number
- kvm 虚拟化 virt-clone 克隆虚拟机
- 【杭电oj】1568 - Fibonacci(数学)
- IOS开发UI系列之常用控件 UILabel, UITextField, UIButton, UIImageView等常用属性与方法
- 【剑指offer系列】 二叉搜索树的后序遍历系列___24
- Fibonacci
- 算法_ LongestPalindromicSubstring
- 新建git,不能git push