如何在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);