android dispatchTouchEvent down返回false
看很多帖子都说在down时返回false就接收不到后来的Action@OverridepublicbooleandispatchTouchEvent(MotionEven...
看很多帖子都说 在down时返回false就接收不到后来的Action
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
if(event.getAction()==MotionEvent.ACTION_DOWN){
System.out.println("Activity:dispatchTouchEvent(Down)");
return false;
}
if(event.getAction()==MotionEvent.ACTION_MOVE){
return true;
}
if(event.getAction()==MotionEvent.ACTION_UP){
System.out.println("Activity:dispatchTouchEvent(up)");
return true;
}
System.out.println("Activity:dispatchTouchEvent(super)");
return super.dispatchTouchEvent(event);
}
可是输出是:
Activity:dispatchTouchEvent(Down)
Activity:dispatchTouchEvent(up)
是我实验的方法错了么? 展开
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
if(event.getAction()==MotionEvent.ACTION_DOWN){
System.out.println("Activity:dispatchTouchEvent(Down)");
return false;
}
if(event.getAction()==MotionEvent.ACTION_MOVE){
return true;
}
if(event.getAction()==MotionEvent.ACTION_UP){
System.out.println("Activity:dispatchTouchEvent(up)");
return true;
}
System.out.println("Activity:dispatchTouchEvent(super)");
return super.dispatchTouchEvent(event);
}
可是输出是:
Activity:dispatchTouchEvent(Down)
Activity:dispatchTouchEvent(up)
是我实验的方法错了么? 展开
1个回答
展开全部
dispatchTouchEvent是派发MotionEvent 的方法。
如果这个方法是主activity里面的话,你无论返回false还是true。该有的还是有的。
像在down时返回false就接收不到后来的Action 一般说的是onTouchEvent这个方法。
表示用户点击的时候需要相应的地方。而派发方法只是关系到把事件派发到具体哪个子view。
如果这个方法是主activity里面的话,你无论返回false还是true。该有的还是有的。
像在down时返回false就接收不到后来的Action 一般说的是onTouchEvent这个方法。
表示用户点击的时候需要相应的地方。而派发方法只是关系到把事件派发到具体哪个子view。
追问
也就是说 在这个里面 返回false和true都一样呗?
返回 super. 就会向下传递
追答
可以这么说。前提是这个dispatchTouchEvent是主activity下的方法,而不是子view中的方法。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询