出现这样问题的原因是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缓存的时候区分这两种。
本文探讨了GridView缓存机制引起的问题,并提供了通过重写getItemViewType和getViewTypeCount方法来解决该问题的策略。主要内容包括理解缓存机制的工作原理,以及如何通过适配器方法实现解决方案。
635

被折叠的 条评论
为什么被折叠?



