我使用此 SwipeToDismissListener 来关闭列表视图中的项目。
解雇工作正常并且还会返回正确的解雇职位,但之后事情开始对我来说很奇怪。
在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 会被多次调用,不知道这是否正常。