0

我正在尝试使用 damajia 的AndroidImageSlider,对于我的应用,我需要禁用滑动功能。从这个链接,他们说已经包含在 setSwipeEnabled 函数中。但是当我试图打电话时

sliderLayout.setSwipeEnabled()

该功能不存在。那么,在哪里调用这个函数呢?

我的毕业文件是:

implementation 'com.daimajia.slider:library:1.1.5@aar' 
4

3 回答 3

3

您可以覆盖触摸侦听器,并且在您想停止滑动时不调用它们的超级,否则调用它。

于 2018-03-12T06:10:40.907 回答
1

您需要创建 SliderLayout 的子类并覆盖返回 true 的 OnInterceptTouchEvent。在您的代码中使用该类而不是 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;
    }
}
于 2019-01-02T12:17:35.220 回答
0

创建一个布尔变量和设置器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);
于 2021-07-13T14:43:38.223 回答