ListView优化的几点建议

1、根据android官方文档的说明:在Adapter中使用ViewHolder(在android5.0materials design中的组件RecyclerView已经体现),在getView方法中复用convertView,设置tag。
自己的部分代码片段:

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        ViewHolder holder = null;
        if (convertView == null) {
            view = LayoutInflater.from(context).inflate(R.layout.layout_item_xiaohua, null);
            holder = new ViewHolder();
            holder.tv_xiaohua_title = (TextView) view.findViewById(R.id.tv_xiaohua_title);
            holder.tv_xiaohua_content = (TextView) view.findViewById(R.id.tv_xiaohua_content);
            holder.tv_xiaohua_time = (TextView) view.findViewById(R.id.tv_xiaohua_time);
            view.setTag(holder);
        } else {
            view = convertView;
            holder = (ViewHolder) view.getTag();
        }
        XiaoHuaBean.XiaoHuaList xiaoHuaList = list.get(position);
        String hadRead = SharePrefUtil.getString(context, "hadread", "");
        if (hadRead.contains(xiaoHuaList.title)){
            holder.tv_xiaohua_title.setTextColor(context.getResources().getColor(R.color.colorGray));
            holder.tv_xiaohua_content.setTextColor(context.getResources().getColor(R.color.colorGray));
            holder.tv_xiaohua_time.setTextColor(context.getResources().getColor(R.color.colorGray));
        }
        holder.tv_xiaohua_title.setText(xiaoHuaList.title);
        holder.tv_xiaohua_content.setText(xiaoHuaList.text);
        holder.tv_xiaohua_time.setText(xiaoHuaList.ct);
        return view;
    }

    private class ViewHolder{
        private TextView tv_xiaohua_title;
        private TextView tv_xiaohua_content;
        private TextView tv_xiaohua_time;

    }

2、item中含有图片的时候,设置滑动的时候不加载图片,对图片的处理很重要,如果对图片的质量要求不是很高的情况,尽量压缩一下,大图处理是防止内存溢出的关键。
3、把scrollingCache和animationCache设置为false。
4、数据量庞大的时候,尽量使用分页加载处理。
5、尽量使用ApplicationContext,避免在getView方法中使用复杂的业务逻辑和线程,避免在Adapter中使用static定义全局变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值