在app开发当中,我们不可避免的遇到ListView。如果ListView使用起来非常卡,则会引不起人们使用的兴趣。在下边中,我们将对ListView进行一个优化提醒,使得我们开发出来的应用更顺畅。
第一、使用ListView时,我们应该将xml文件中的width和height都设置成match_parent。因为这样避免了设置成wrap_content内容包裹在被后面的BaseAdapter中的getView方法引用时,每次都需要先匹配大小。
第二、我们在extends BaseAdapter后,使用getView方法中,使用convertView参数。这个参数控制着当ListView布满屏幕时所new的布局对象。如果不使用这个参数,每次进行ListView滑动的时候,都伴随着大量的xml文件变成对象。这无疑占用了极大的内存,极容易造成程序崩溃。而convertview这个参数就相当于布局池,使用完后的布局对象往布局池里一丢,当下一个使用的时候,先判断布局池里面是否有布局对象,如果有,就不需要再new,这样就节省了大量的操作和内存。(这个非常重要)
第三、因为在ListView里面,很多控件或者布局都是重复使用,而holder就是一个将控件变成对象以便能够重复使用的方法。原理和第二个差不多。它主要是减少了进入xml中解析控件的一些步骤。具体方法如下: