您的位置:首页 > 其它

SwipeLayout在ListView中使用的使用的问题

2015-07-24 22:05 127 查看
在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();


看情况调用就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: