如何在Android中禁用大马家的AndroidImageSlider中的滑动?
How to disable swipe in damajia's AndroidImageSlider in Android?
我正在尝试使用damajia的AndroidImageSlider and for my app I need to disable the swipe feature. From this link,他们说已经包含在setSwipeEnabled函数中。但是当我试图打电话给
sliderLayout.setSwipeEnabled()
该函数不存在。那么,在哪里调用这个函数呢?
我的 gradle 文件是:
implementation 'com.daimajia.slider:library:1.1.5@aar'
您可以覆盖触摸侦听器,并且在您想要停止滑动时不调用它们的 super,否则调用它。
您需要创建 SliderLayout 的 subclass 并覆盖 returns 为真的 OnInterceptTouchEvent。在您的代码中使用 class 而不是 SliderLayout。
public class SlideLayout extends SliderLayout {
public SlideLayout(Context context) {
super(context);
}
public SlideLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SlideLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
}
在SliderLayout.java
中创建一个布尔变量和setter
private boolean isDisableTouchEvent = true;
public void setDisableTouchEvent(boolean disableTouchEvent) {
isDisableTouchEvent = disableTouchEvent;
}
并用下面的
替换 onInterceptTouchEvent
函数
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (isDisableTouchEvent)
return true;
else {
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
pauseAutoCycle();
break;
}
return false;
}
}
之后您可以使用此功能禁用滑动
slider.setDisableTouchEvent(true);
我正在尝试使用damajia的AndroidImageSlider and for my app I need to disable the swipe feature. From this link,他们说已经包含在setSwipeEnabled函数中。但是当我试图打电话给
sliderLayout.setSwipeEnabled()
该函数不存在。那么,在哪里调用这个函数呢?
我的 gradle 文件是:
implementation 'com.daimajia.slider:library:1.1.5@aar'
您可以覆盖触摸侦听器,并且在您想要停止滑动时不调用它们的 super,否则调用它。
您需要创建 SliderLayout 的 subclass 并覆盖 returns 为真的 OnInterceptTouchEvent。在您的代码中使用 class 而不是 SliderLayout。
public class SlideLayout extends SliderLayout {
public SlideLayout(Context context) {
super(context);
}
public SlideLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SlideLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
}
在SliderLayout.java
private boolean isDisableTouchEvent = true;
public void setDisableTouchEvent(boolean disableTouchEvent) {
isDisableTouchEvent = disableTouchEvent;
}
并用下面的
替换onInterceptTouchEvent
函数
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (isDisableTouchEvent)
return true;
else {
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
pauseAutoCycle();
break;
}
return false;
}
}
之后您可以使用此功能禁用滑动
slider.setDisableTouchEvent(true);