ListView相关

来源:互联网 发布:全球数据库市场格局 编辑:程序博客网 时间:2024/04/29 10:05

一.ListView的优化

①视图的复用:

在创建继承BaseAdapter的适配器的时候重写四个方法,其中最重要的两个方法是getCount(),和getView(),

在getVIew()中有个参数convertVIew,这个就是以前是曾经显示的view,还没有被清除,可以通过复用这个来减少创建,

达到节省资源的目的.

②自定义视图的容器减少空间的查询次数,最好定义成静态的类:

创建一个内部类,参数是你需要用到的空间,当使用打气筒的时候就可以同时初始化这个类,并对其的参数赋值,值是寻找的空间,

然后调用setTag(),若convertView存在时,再调用getTag()方法强转成容器对象,相当于给View添加一个类成员变量.

//创建内部类

static class ViewHolder{

private TextView tv;

.....................(个数根据自己需要)

//在适配器的getVIew()方法进行下面的操作

getView(){

View view;

ViewHolder  holder;

if(convertView == null){

view = View.inflat(........)(俗称打气筒,将一个布局文件做成视图);

holder = new ViewHolder();

holder.tv = (TextVIew)view.findById(R.id...);

...........(个数根据自己需要)

view.setTag(holder);

}else{

view = convertView;

holder = (ViewHolder)view.getTag();

}

//下次想要设置某个空间的值得时候就可以直接这样就可以了

holder.tv.setText(.............);

................................

}


③是进行分页加载:

这是我们可以设定的预先加载大概多少条


二.ListView特殊属性详解:

android:divider="@null"   清楚ListView的分割线

android:cacheColorHint="@android:color/transparent"   清楚ListView的背景色

android:layoutAnimation="@anim/layoutanimation"  这个属性可以设置ListView的条目动画,首先是在res下创建anim文件夹,然后分别创建以set和layoutAnimation为节点的xml文件,在后一个xml中调用前一个。

例如:这是set节点的xml:

<set xmlns:android="http://schemas.android.com/apk/res/android" >   
    <translate 
        android:fromXDelta="-100%"  
                android:fromYDelta="0"  
                android:toXDelta="0"  
                android:toYDelta="0"  
                android:duration="1000"  
                android:interpolator="@android:anim/overshoot_interpolator" />
<rotate 
   android:fromDegrees="0"
   android:toDegrees="360"
   android:duration="2000"
   />
</set>

这是layoutAnimation的xml

<?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"  
    android:animation="@anim/list_animation"  
    android:animationOrder="normal"  
    android:delay="0.1" />  


android:listSelector="#aaa"设置ListView条目点击后整个条目的背景色


0 0