Listview基础适配器getview跳过位置

时间:2015-07-18 20:49:29

标签: android listview android-adapter

正如标题所说,我的适配器的getView方法有时会跳过一个位置。我还没能确定它发生的原因,但是从适配器上放置断点我注意到getItemViewType被调用但getView并不总是被调用。我的理解是调用getItemViewType然后调用getView,但也许我错过了什么?

我重写了getViewTypeCount,getItemViewType,getCount和getItem

@Override
public int getItemViewType(int position) {
    return getItem(position).isMe() ? ME : OTHER;
}

@Override
public int getViewTypeCount() {
    // Left or right bubble
    return 2;
}

@Override
public int getCount() {
    return messages.getCount();
}

@Override
public HsConversationMessageItem getItem(int position) {
    // Reverse the order of the items since we want the newest items on the bottom
    return messages.getItem(getCount() - position - 1);
}

应该发生的是为位置x调用getItemViewType,然后为同一位置调用getView。但有时getItemViewType被调用为位置x,跳过getView和getItemViewType再次被调用x + 1,其余的继续正常。对于它的价值,我不认为问题出在我的getView方法上,因为它没有被调用。

希望这是有道理的。感谢

0 个答案:

没有答案