SwipeLayout not closing correctly
RGregat opened this issue · comments
Hi, first thing thanks for this great library. But I have one interesting problem.
I have currently two items in my ListView
If I open on the first Item the underlying layout and press the delete button, I remove one Item of my datamodel and invalidate the adapter.
The interesting is, the remaining item has now the opened status
If I delete also the last item and reopen everything with fresh data, the first item is still opened.
Code Snipped of the ListViewAdapter which extends from the BaseSwipeAdapter:
`
@OverRide
public View generateView(int position, ViewGroup parent) {
Log.d("ListViewAdapter", "generateView position: " + position);
holder = new ViewHolder();
View v = LayoutInflater.from(mContext).inflate(R.layout.settings_delete_project_item, null);
holder.swipeLayout = (SwipeLayout)v.findViewById(getSwipeLayoutResourceId(position));
holder.delete = (Button) v.findViewById(R.id.delete);
holder.t_position = (TextView) v.findViewById(R.id.position);
holder.t_data = (TextView) v.findViewById(R.id.text_data);
v.setTag(holder);
return v;
}
@Override
public void fillValues(int position, View convertView) {
Log.d("ListViewAdapter", "fillValues position: " + position);
holder = (ViewHolder) convertView.getTag();
holder.delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d("ListViewAdapter", "holder.delete position: " + position);
holder.swipeLayout.close(true);
mDeletionInterface.deleteProject(projekte.get(position).getId());
projekte.remove(position);
notifyDataSetChanged();
}
});
holder.swipeLayout.addSwipeListener(new SimpleSwipeListener() {
@Override
public void onOpen(SwipeLayout layout) {
}
});
holder.t_position.setText((position + 1) + ".");
holder.t_data.setText(projekte.get(position).print());
}`
Well I think I don't handle the Views in a proper way, maybe someone of you can help me with this problem.
Ok I think I found a way to solve this issue
@Override
public void onClick(View view) {
Log.d("ListViewAdapter", "holder.delete position: " + position);
mItemManger.removeShownLayouts(holder.swipeLayout);
mDeletionInterface.deleteProject(position);//projekte.get(position).getId()
mItemManger.closeAllItems();
}