首先不要问为什么会变,因为我用的SwipeListView刷新adapter的时候那个侧滑出来的删除按钮不会恢复回去,而且对position做了删除,不能主动View.GONE,
然后就只能重新setAdapter,但是问题来了,列表回到了顶部因为重新适配了没毛病。
我的需求就是删除一条,位置不变,但是列表带有侧滑删除,删完一切正常。好了有同样需求的小盆友可以粗看一下:
SwipeListView还是要用,然后写
mListview.setOnScrollListener(new AbsListView.OnScrollListener() {
/**
* 滚动状态改变时调用
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// 不滚动时保存当前滚动到的位置
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
position = mListview.getFirstVisiblePosition();
}
}
/**
* 滚动时调用
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
});
,在删除的onRightClick监听里,数据源remove(position)之后mListView重新setAdapter,然后
mListview.setSelection(position);