在ListView中使用SwipeLayout时,SwipeLayout在BaseSwipeAdapter暴露了两个方法:

public View generateView(nt position, ViewGroup parent)
public void fillValues(int position, View convertView)

一般来说,实现这两个方法就可以了。
遇到的问题:
1.在generateView中监听删除按钮(举个例子,可能是其他功能的按钮),在监听事件中需要找到当前操作的Item在所有数据中的位置,但是在generateView的参数中的position,位置指向不对。

这个问题其实看下BaseSwipeAdapter源码就知道了:

@Override
public final View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null){
v = generateView(position, parent);
mItemManger.initialize(v, position);
}else{
mItemManger.updateConvertView(v, position);
}
fillValues(position, v);
return v;
}

很明显了,generateView方法中的position是会重用的,but,fillValues的position参数是item的正确的位置,所以,想要操作所有的数据的话,就到fillValues方法中写就可以了。
2.还是删除的例子,滑动,出来删除按钮,点击删除按钮,本条数据删除,但是下一条数据会呈现滑动之后的状态。
这个其实很好解决,SwipeLayout提供了方法的:

 closeAllItems();
closeAllExcept();
closeItem();

看情况调用就可以了