ListView优化方案
2016-04-13 17:38
381 查看
ListView优化方案
ListView中的优化一般通过减少getView中的耗时操作.Adapter中的优化
运用了convertView的回收视图,当convertView不为NULL时,就不需要再去解析视图。还利用了viewholder模式,不用每次都去通过id查找控件findViewByID,而是将View保存在viewholder中,再通过convertView将viewholder标记下来。
实例代码
public class BookAdapter extends BaseAdapter { private Context mContext; private List<Book> mdata; public BookAdapter(Context mContext, List<Book> mdata) { this.mContext = mContext; this.mdata = mdata; } public void refresh(List<Book> list) { mdata = list; notifyDataSetChanged(); } public List<Book> getDataList() { return mdata; } @Override public int getCount() { return mdata.size(); } @Override public Book getItem(int position) { return mdata.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder = null; if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(mContext); convertView = inflater.inflate(R.layout.item_book, null); holder = new Holder(); holder.tv_book = (TextView)convertView.findViewById(R.id.book_text); holder.tv_uri = (TextView) convertView.findViewById(R.id.book_uri); } else { holder = (Holder) convertView.getTag(); } holder.tv_book.setText(mdata.get(position).getName()); holder.tv_uri.setText(mdata.get(position).getLink()); return convertView; } class Holder { private TextView tv_book ,tv_uri; } }
在getView中图片使用的异步加载
可以使用一些第三方图片加载库比如Glide来实现相关文章推荐
- java持有对象map(三)-对象化计数
- 第七周项目4:用多文件组织多个类的程序(1)
- 团队计划backlog
- NSBundle
- HDU 5228 ZCC loves straight flush 暴力
- Linux Shell脚本教程
- jquery格式化时间
- 二叉树中和为某一值的路径
- 要看的文章(不定期更新)
- U盘安装Windows 10和Ubuntu Linux双系统图解教程
- POJ 2019(二维RMQ)
- getLastKnownLocation 返回null
- stopPropagation, preventDefault 和 return false 的区别
- CardVIew 卡片式布局
- hive中的一些基本问题解决方法
- iOS 警告收录及科学快速的消除方法
- 一款基于HTML5的Web 3D开发工具
- Socket通讯
- HBase Rowkey的散列与预分区设计
- HDU 1281 棋盘游戏(二分图匹配)