首先不要问为什么会变,因为我用的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);