Skip to content

Commit 5f3f50b

Browse files
Albert LoAlbert Lo
Albert Lo
authored and
Albert Lo
committed
Pull Request daimajia#72
1 parent 4f4c82f commit 5f3f50b

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

library/src/main/java/com/daimajia/swipe/implments/SwipeItemMangerImpl.java

+11-5
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,10 @@ public void onLayout(SwipeLayout v) {
173173

174174
}
175175

176-
class SwipeMemory extends SimpleSwipeListener {
176+
private class SwipeMemory extends SimpleSwipeListener {
177177

178178
private int position;
179+
private int mOpenTimes = 0;
179180

180181
SwipeMemory(int position) {
181182
this.position = position;
@@ -185,8 +186,12 @@ class SwipeMemory extends SimpleSwipeListener {
185186
public void onClose(SwipeLayout layout) {
186187
if (mode == Attributes.Mode.Multiple) {
187188
mOpenPositions.remove(position);
188-
} else if(position == mOpenPosition) {
189-
mOpenPosition = INVALID_POSITION;
189+
} else {
190+
mOpenTimes--;
191+
if ((mOpenTimes <= 0) || (position == mOpenPosition)) {
192+
mOpenPosition = INVALID_POSITION;
193+
mOpenTimes = 0;
194+
}
190195
}
191196
}
192197

@@ -199,9 +204,10 @@ public void onStartOpen(SwipeLayout layout) {
199204

200205
@Override
201206
public void onOpen(SwipeLayout layout) {
202-
if (mode == Attributes.Mode.Multiple)
207+
if (mode == Attributes.Mode.Multiple) {
203208
mOpenPositions.add(position);
204-
else {
209+
} else {
210+
mOpenTimes++;
205211
closeAllExcept(layout);
206212
mOpenPosition = position;
207213
}

0 commit comments

Comments
 (0)