Skip to content

Commit 6c3db34

Browse files
committed
fix #24, support disable swipe gesture and fix setEnabled(boolean) not works issue
1 parent de5c5f9 commit 6c3db34

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

Diff for: demo/src/main/java/com/daimajia/swipedemo/MyActivity.java

-7
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import android.view.View;
1010
import android.widget.Toast;
1111

12-
import com.daimajia.swipe.SimpleSwipeListener;
1312
import com.daimajia.swipe.SwipeLayout;
1413
import com.nineoldandroids.view.ViewHelper;
1514

@@ -69,12 +68,6 @@ public void onClick(View v) {
6968
Toast.makeText(MyActivity.this, "Yo", Toast.LENGTH_SHORT).show();
7069
}
7170
});
72-
sample1.addSwipeListener(new SimpleSwipeListener() {
73-
@Override
74-
public void onOpen(SwipeLayout layout) {
75-
Toast.makeText(MyActivity.this, "Opened", Toast.LENGTH_SHORT).show();
76-
}
77-
});
7871

7972
//sample3
8073

Diff for: gradle.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
# org.gradle.parallel=true
1919

2020

21-
VERSION_NAME=1.0.8
22-
VERSION_CODE=9
21+
VERSION_NAME=1.1.0
22+
VERSION_CODE=11
2323
GROUP=com.daimajia.swipelayout
2424

2525
ANDROID_BUILD_MIN_SDK_VERSION=8

Diff for: library/src/main/java/com/daimajia/swipe/SwipeLayout.java

+26-7
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import android.widget.AdapterView;
1616
import android.widget.BaseAdapter;
1717
import android.widget.FrameLayout;
18-
import android.widget.HeaderViewListAdapter;
1918
import android.widget.ListAdapter;
2019

2120
import java.util.ArrayList;
@@ -36,6 +35,8 @@ public class SwipeLayout extends FrameLayout {
3635
private Map<View, ArrayList<OnRevealListener>> mRevealListeners = new HashMap<View, ArrayList<OnRevealListener>>();
3736
private Map<View, Boolean> mShowEntirely = new HashMap<View, Boolean>();
3837

38+
private boolean mSwipeEnabled = true;
39+
3940
public static enum DragEdge {
4041
Left,
4142
Right,
@@ -638,6 +639,15 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
638639

639640
@Override
640641
public boolean onInterceptTouchEvent(MotionEvent ev) {
642+
643+
if(!isEnabled() || !isEnabledInAdapterView()){
644+
return true;
645+
}
646+
647+
if(!isSwipeEnabled()){
648+
return false;
649+
}
650+
641651
for (SwipeDenier denier : mSwipeDeniers) {
642652
if (denier != null && denier.shouldDenySwipe(ev)) {
643653
return false;
@@ -716,10 +726,12 @@ private boolean childNeedHandleTouchEvent(View v, MotionEvent event){
716726
private float sX = -1 , sY = -1;
717727
@Override
718728
public boolean onTouchEvent(MotionEvent event) {
719-
720-
if(!isEnabledInAdapterView())
729+
if(!isEnabledInAdapterView() || !isEnabled())
721730
return true;
722731

732+
if(!isSwipeEnabled())
733+
return super.onTouchEvent(event);
734+
723735
int action = event.getActionMasked();
724736
ViewParent parent = getParent();
725737

@@ -735,6 +747,7 @@ public boolean onTouchEvent(MotionEvent event) {
735747
case MotionEvent.ACTION_DOWN:
736748
mDragHelper.processTouchEvent(event);
737749
parent.requestDisallowInterceptTouchEvent(true);
750+
738751
sX = event.getRawX();
739752
sY = event.getRawY();
740753

@@ -839,17 +852,23 @@ private boolean isEnabledInAdapterView(){
839852
if(adapter != null){
840853
int p = adapterView.getPositionForView(SwipeLayout.this);
841854
if(adapter instanceof BaseAdapter){
842-
enable &= ((BaseAdapter) adapter).isEnabled(p);
855+
enable = ((BaseAdapter) adapter).isEnabled(p);
843856
}else if(adapter instanceof ListAdapter){
844-
enable &= ((ListAdapter) adapter).isEnabled(p);
845-
}else if(adapter instanceof HeaderViewListAdapter){
846-
enable &= ((HeaderViewListAdapter) adapter).isEnabled(p);
857+
enable = ((ListAdapter) adapter).isEnabled(p);
847858
}
848859
}
849860
}
850861
return enable;
851862
}
852863

864+
public void setSwipeEnabled(boolean enabled){
865+
mSwipeEnabled = enabled;
866+
}
867+
868+
public boolean isSwipeEnabled(){
869+
return mSwipeEnabled;
870+
}
871+
853872
private boolean insideAdapterView(){
854873
return getAdapterView() != null;
855874
}

0 commit comments

Comments
 (0)