出现这样问题的原因是GridView的缓存机制。此机制简要表述为滑动上去的item,被android重新利用,从下面帮你滑上来了。具体表现为如何取决于你的adapter的getView方法。
要解决这个问题,需要重写getItemViewType,getViewTypeCount两个方法。如:
@Override
public int getItemViewType(int position) {
return channels.get(position).isSection ? TYPE_SECTION : TYPE_CHANNEL;
}
@Override
public int getViewTypeCount() {
return VIEW_TYPE_COUNT;
}
这样做的目的是告诉GridView你有两种ViewType,方便GridView缓存的时候区分这两种。
要解决这个问题,需要重写getItemViewType,getViewTypeCount两个方法。如:
@Override
public int getItemViewType(int position) {
return channels.get(position).isSection ? TYPE_SECTION : TYPE_CHANNEL;
}
@Override
public int getViewTypeCount() {
return VIEW_TYPE_COUNT;
}
这样做的目的是告诉GridView你有两种ViewType,方便GridView缓存的时候区分这两种。