Android:在一个RelativeLayout的onTouchEvent中看不到ACTION_MOVE / UP

我注册了一个RelativeLayout的监听器,见下文。 我想添加一些自定义事件处理

mOnTouchListener = new OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { final int action = motionEvent.getAction(); boolean ret = false; switch (action) { case MotionEvent.ACTION_DOWN: ret = doSth(motionEvent); break; case MotionEvent.ACTION_MOVE: ret = doSth(motionEvent); break; case MotionEvent.ACTION_UP: ret = doSth(motionEvent); break; } return ret; // returning false got me none of MOVE/UP events right here } }; 

但是,除非返回true,否则无法获得任何MOVE / UP事件。

另一个尝试,我注册了一个CheckBox的同一个监听器,一切都很顺利。
ViewGroup和Widget有区别吗? devise目的?

Solutions Collecting From Web of "Android:在一个RelativeLayout的onTouchEvent中看不到ACTION_MOVE / UP"

“但是,除非回复正确,否则我不能得到任何MOVE / UP事件。”

你已经回答了你自己的问题。 如果您没有回复true表示您关心并正在处理事件,系统将不会向您发送后续事件,因为您已经告诉系统您不关心此事件。 如果您需要监视触摸事件的整个生命周期,则需要始终返回true