如何屏蔽List的滑动事件
要屏蔽List的滑动事件,你可以在你的Activity或者Fragment中重写onTouchEvent
方法,并在此方法中捕获MotionEvent.ACTION_MOVE
事件,然后调用event.preventDefault()
来阻止它的分发。
例如,在你的Activity中:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
event.preventDefault();
break;
}
return super.onTouchEvent(event);
}
以上代码将阻止滑动事件的发生。但是,这样做会阻止所有的滑动事件,包括系统本身的滑动事件。如果你只想阻止某个特定的List的滑动事件,你可能需要寻找该List的特定实现,并重写其onInterceptTouchEvent
或onTouchEvent
方法。
可以通过onScrollFrameBegin事件来实现,在列表开始滚动时触发,事件参数传入即将发生的滑动量,事件处理函数中可根据应用场景计算实际需要的滑动量并作为事件处理函数的返回值返回,列表将按照返回值的实际滑动量进行滑动,我们可以将返回值设置为0,则表示不滑动。
参考链接
List