我的项目里,想要禁止listview滑动,百度了下,网上有人建议用以下方法,即拦截onTouch中的ACTION_MOVE。程序如下:
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
return true;
default:
break;
}
return false;
}
但我试了下,手在listview上乱滑的时候,listview偶尔还是会滑动。于是自己猜想,可能拦截的不全,所以又把ACTION_UP和ACTION_DOWN也拦截了,程序变为如下:
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
return true;
default:
break;
}
return false;
}
这下,无论手怎么在listview上来回划, listview也不会滑动了。
问题是貌似解决了,可是不太明白,为什么只拦截ACTION_MOVE不管用呢?我的理解,ACTION_UP和ACTION_DOWN应该只是对屏幕的按下与松开,怎么还会有滑动效果呢?
请老师指教,多谢!