ListView中包含多种类型Item时的一个注意点

public boolean isEnabled (int position):如果列表的一项item是separator(充当分隔项目,跟其他item项一样,也可以不一样,但是无法进行点击),返回true,也就是可以点击,并接收响应事件。如果此时position处的item是separator的话,返回false,也就无法响应点击或触摸事件,此项目是不可以点击的,表现形式为点了没任何反应,可以充当一个列表中的分隔,当然可以自定义这个分隔项的布局。


public int getItemViewType (int position):以int数值型返回itemView的类型。一般普通列表的item都是一样的布局,也就是说这个列表只有一种类型,但是很多时候我们需要列表显示不同的item,比如有的列表有普通item和separator两种类型,item用于响应用户点击事件,separator用于分隔item,不可以点击,这样这个列表就有了两种类型,重载这个方法,如果当前位置是item,我们可以返回1,如果是separator我们可以返回2,以此类推。



public int getViewTypeCount ():以int数值类型返回列表拥有的itemview的个数,比如上例中,有两种类型的item,此方法返回2。
具体用法可以参照这个链接:http://android.amberfog.com/?p=296不过此链接的例子实现了不同item的布局,但是作为separator的item依然可以点击,在例子中重载isEnabled方法,当前位置如果为separator时,返回false即可。
理解了很久才想通,直到看到上面那个链接才明白。佩服至极,能如此地透彻理解!

你可能感兴趣的:(ListView中包含多种类型Item时的一个注意点)