在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;
}
closeAllItems();
closeAllExcept();
closeItem();