public View getView( int position, View convertView, ViewGroup parent) {
public View getHeaderView(int position, View convertView, ViewGroup parent) {
public long getHeaderId( int position) {
g
getHeaderView的方法是精华所在,因为这样就不会使headerview一直被parent所持有,因为后面我们还要去headerview加到父View,然后从Listview中移除,这个步骤如果用同一个view会报错。
getHeaderId是规定StickyListview的分组规则,每个组有一个StickyHeader,如果是不同分组里边的第一个Item,那么这个Item上要加一个HeaderView,这个headerView是调用getHeaderView方法取得的
具体代码如下:
/* Returns {@code true} if the previous position has the same header ID. /
private boolean previousPositionHasSameHeader( int position) {
return position != 0
&& mDelegate. getHeaderId(position ) == mDelegate
.getHeaderId (position - 1 );
}
@Override
public WrapperView getView(int position, View convertView, ViewGroup parent )