fix #24, support disable swipe gesture and fix setEnabled(boolean) not works issue
This commit is contained in:
parent
de5c5f9d87
commit
6c3db3425c
|
|
@ -9,7 +9,6 @@ import android.view.MenuItem;
|
|||
import android.view.View;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.daimajia.swipe.SimpleSwipeListener;
|
||||
import com.daimajia.swipe.SwipeLayout;
|
||||
import com.nineoldandroids.view.ViewHelper;
|
||||
|
||||
|
|
@ -69,12 +68,6 @@ public class MyActivity extends Activity {
|
|||
Toast.makeText(MyActivity.this, "Yo", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
sample1.addSwipeListener(new SimpleSwipeListener() {
|
||||
@Override
|
||||
public void onOpen(SwipeLayout layout) {
|
||||
Toast.makeText(MyActivity.this, "Opened", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
//sample3
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,8 @@
|
|||
# org.gradle.parallel=true
|
||||
|
||||
|
||||
VERSION_NAME=1.0.8
|
||||
VERSION_CODE=9
|
||||
VERSION_NAME=1.1.0
|
||||
VERSION_CODE=11
|
||||
GROUP=com.daimajia.swipelayout
|
||||
|
||||
ANDROID_BUILD_MIN_SDK_VERSION=8
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import android.widget.Adapter;
|
|||
import android.widget.AdapterView;
|
||||
import android.widget.BaseAdapter;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.HeaderViewListAdapter;
|
||||
import android.widget.ListAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -36,6 +35,8 @@ public class SwipeLayout extends FrameLayout {
|
|||
private Map<View, ArrayList<OnRevealListener>> mRevealListeners = new HashMap<View, ArrayList<OnRevealListener>>();
|
||||
private Map<View, Boolean> mShowEntirely = new HashMap<View, Boolean>();
|
||||
|
||||
private boolean mSwipeEnabled = true;
|
||||
|
||||
public static enum DragEdge {
|
||||
Left,
|
||||
Right,
|
||||
|
|
@ -638,6 +639,15 @@ public class SwipeLayout extends FrameLayout {
|
|||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(MotionEvent ev) {
|
||||
|
||||
if(!isEnabled() || !isEnabledInAdapterView()){
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!isSwipeEnabled()){
|
||||
return false;
|
||||
}
|
||||
|
||||
for (SwipeDenier denier : mSwipeDeniers) {
|
||||
if (denier != null && denier.shouldDenySwipe(ev)) {
|
||||
return false;
|
||||
|
|
@ -716,10 +726,12 @@ public class SwipeLayout extends FrameLayout {
|
|||
private float sX = -1 , sY = -1;
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
|
||||
if(!isEnabledInAdapterView())
|
||||
if(!isEnabledInAdapterView() || !isEnabled())
|
||||
return true;
|
||||
|
||||
if(!isSwipeEnabled())
|
||||
return super.onTouchEvent(event);
|
||||
|
||||
int action = event.getActionMasked();
|
||||
ViewParent parent = getParent();
|
||||
|
||||
|
|
@ -735,6 +747,7 @@ public class SwipeLayout extends FrameLayout {
|
|||
case MotionEvent.ACTION_DOWN:
|
||||
mDragHelper.processTouchEvent(event);
|
||||
parent.requestDisallowInterceptTouchEvent(true);
|
||||
|
||||
sX = event.getRawX();
|
||||
sY = event.getRawY();
|
||||
|
||||
|
|
@ -839,17 +852,23 @@ public class SwipeLayout extends FrameLayout {
|
|||
if(adapter != null){
|
||||
int p = adapterView.getPositionForView(SwipeLayout.this);
|
||||
if(adapter instanceof BaseAdapter){
|
||||
enable &= ((BaseAdapter) adapter).isEnabled(p);
|
||||
enable = ((BaseAdapter) adapter).isEnabled(p);
|
||||
}else if(adapter instanceof ListAdapter){
|
||||
enable &= ((ListAdapter) adapter).isEnabled(p);
|
||||
}else if(adapter instanceof HeaderViewListAdapter){
|
||||
enable &= ((HeaderViewListAdapter) adapter).isEnabled(p);
|
||||
enable = ((ListAdapter) adapter).isEnabled(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
return enable;
|
||||
}
|
||||
|
||||
public void setSwipeEnabled(boolean enabled){
|
||||
mSwipeEnabled = enabled;
|
||||
}
|
||||
|
||||
public boolean isSwipeEnabled(){
|
||||
return mSwipeEnabled;
|
||||
}
|
||||
|
||||
private boolean insideAdapterView(){
|
||||
return getAdapterView() != null;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue