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,以此类推。重写getItemViewType方法,这个方法返回0到getViewTypeCount()-1之间的数字或者IGNORE_ITEM_VIEW_TYPE. 这个方法返回的id必须要和getView方法中返回的View匹配:在getView中返回相同类型View的position, getItemViewType应该返回同一个id.
getItemViewType 返回值应该是 从0 开始 连续递增的,且,小于getViewTypeCount;比如getViewTypeCount=5,那么getItemViewType 返回值应该是 0,1,2,3,4 (不能越界),否则会报错,如数组越界