Android SwipeToDismiss ListView搞砸了物品

时间:2016-12-05 10:24:15

标签: android listview

我使用此 SwipeToDismissListener 来关闭列表视图中的项目。

http://www.java2s.com/Open-Source/Android_Free_Code/UI/gridview/com_datayumyum_posSwipeDismissListViewTouchListener_java.htm

解雇工作正常并且还会返回正确的解雇职位,但之后事情开始对我来说很奇怪。

在onDismiss中,我从适配器中删除了该项:

public void onDismiss(ListView listView, int[] reverseSortedPositions) {                
    for (int i: reverseSortedPositions) {
                Item item = adapter.getItem(i);
                adapter.remove(item);
            }
}

现在重绘 ListView 时,项目开始看起来像列表中的其他项目(因此项目A显示项目B的文本)但是如果我实现 onClickListener 并检查它实际上是什么项目,它是正确的项目,因此它显然是图形问题。

我可以通过在项目点击上单独调用 adapter.notifydatasetchanged 2次来修复这个错误的外观.... 它适用于adapter.notifydatasetchanged如果我只调用一次或者如果我将其称为延迟但是自动...

有人知道这里发生了什么吗?

另外我注意到,如果只发生一次重绘,我的 adapter.getView 会被多次调用,不知道这是否正常。

0 个答案:

没有答案