外层有scrollview时,手指移动方向跟滚动条方向相同时,会导致scrollview的滚动。此时如果不想滚动的话,可以在要接受ontouch的子视图,或者子子视图中的touch监听里加上v.getParent().requestDisallowInterceptTouchEvent(true);,就可屏蔽scrollview的滚动。
例子如下:xml文件
现在我要准备在child_view接受ontouch事件,并且屏蔽Scrollview的滚动事件
child_view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { v.getParent().requestDisallowInterceptTouchEvent(true); return false; } });
笔者亲测有效。