2015-02-05 162 views
0

关于ACTION_DOWN,如果收益在视图的onTouchEvent功能错误,我们无法收到以下android:如果OnTouchEvent在ACTION_MOVE时返回false,会有什么影响?

ACTION_MOVE

ACTION_UP

ACTION_CANCEL

但有什么影响返回false时当ACTION_MOVE?像

public boolean onTouchEvent(MotionEvent ev) { 
    switch (ev.getActionMasked()) { 
    case MotionEvent.ACTION_MOVE: 
    case MotionEvent.ACTION_CANCEL: 
     super.onTouchEvent(ev); 
     return false; 
    } 
    return super.onTouchEvent(ev); 
} 

我有listview测试,似乎确定..

+0

我同样的效果 – 2015-02-05 15:30:07

+0

可能重复的[返回在ImageView的OnTouch错误,但仍然是事件消耗](http://stackoverflow.com/questions/28067270/returning-false-in-ontouch-on-imageview-but-still-event-is-getting-消耗) – corsair992 2015-02-06 03:37:59

回答

0

当的onTouchEvent返回ACTION_DOWN假,认为将不会收到的onTouchEvent进一步的电话,父视图将收到的onTouchEvent的呼叫与ACTION_DOWN,父视图将决定是否处理触摸事件或通过返回true为是,假为没有

如果该视图为ACTION_DOWN返回true,但为ACTION_MOVE返回false,它将继续获取onTouchEvent调用时,父视图不会收到任何onTouchEvent调用,看起来这个想法是这个触摸序列已经决定由这个视图来处理,所以即使视图返回假的一半,我们仍然不会开始在父视图上调用onTouchEvent

但是,活动托管视图将收到一个onTouchEvent调用每次这个视图返回false为一个非ACTION_DOWN onTouchEvent调用,它只是这种情况,它可能不是一个合理的结果,任何人都会想要

+0

在我的情况下,我需要父处理tou在评估ACTION_MOVE上的一些逻辑之后,我会怎么做? – diegoveloper 2017-09-15 14:30:08

相关问题