我正在尝试使用 damajia 的AndroidImageSlider,对于我的应用,我需要禁用滑动功能。从这个链接,他们说已经包含在 setSwipeEnabled 函数中。但是当我试图打电话时
sliderLayout.setSwipeEnabled()
该功能不存在。那么,在哪里调用这个函数呢?
我的毕业文件是:
implementation 'com.daimajia.slider:library:1.1.5@aar'
我正在尝试使用 damajia 的AndroidImageSlider,对于我的应用,我需要禁用滑动功能。从这个链接,他们说已经包含在 setSwipeEnabled 函数中。但是当我试图打电话时
sliderLayout.setSwipeEnabled()
该功能不存在。那么,在哪里调用这个函数呢?
我的毕业文件是:
implementation 'com.daimajia.slider:library:1.1.5@aar'
您可以覆盖触摸侦听器,并且在您想停止滑动时不调用它们的超级,否则调用它。
您需要创建 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;
}
}
创建一个布尔变量和设置器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);