美文网首页
ListView的优化

ListView的优化

作者: 安多人 | 来源:发表于2018-03-23 10:52 被阅读0次

    每显示一个ListView就要重新找布局,找控件,可能会引起内存溢出,因此要进行优化,优化的思想是减少找布局找控件的次数。因此我们将所有的控件的id都放到一个类viewHolder中。判断view是否为空,如果为空建立一个view,然后为holder的属性赋值,并将holder的内容打包到view中,如果不为空的话,则getTag。

    public View getView(int i, View view, ViewGroup viewGroup) {
    if(view==null){//判断view是否为空
                //如果为空建立一个view
               view = View.inflate(this,R.layout.item,null);
              //新建一个holder
               ViewHolder holder = new ViewHolder();
              //为控件赋值
               holder.imageView = view.findViewById(R.id.tupian);
               holder. textView1 = view.findViewById(R.id.textView1);
               holder.textView2 = view.findViewById(R.id.textView2);
               holder. time = view.findViewById(R.id.time);
    //并将holder的内容打包到view
               view.setTag(holder);
    }else{
    //如果不为空,则从tag中取出
    holder = (ViewHolder)view.getTag();
    }
    //对holder的内容赋值
           User user = list.get(i);
           holder.imageView.setImageResource(R.drawable.boy);
           holder.textView1.setText(list.get(i).getName());
           holder.textView2.setText(list.get(i).getMessage());
           holder.time = view.findViewById(R.id.time);
           return view;
    }
    class  ViewHolder{//这个类将ListView中的所有控件打包成一个类
            ImageView imageView;
            TextView textView1;
            TextView textView2;
            TextView time;
        }
    

    相关文章

      网友评论

          本文标题:ListView的优化

          本文链接:https://www.haomeiwen.com/subject/ttitcftx.html