今天在一个TabAcitivity的其中一个标签加入ViewFlipper进行局部的view切换时发现运行时通过在Acitivity的OnTouchEvent方法中设定的切换效果没有实现。通过syso大法发现,MotionEvent.ACTION_DOWN被触发了,而MotionEvent.ACTION_UP没有被触发。百度后发现,原来是return时直接return了父方法(return super.onTouchEvent(event);),该方法在MotionEvent.ACTION_DOWN时返回了false,使得事件被抛向底层,由于使用了TabAcitivity,我的当前Acitivity便不再是最底层的Activity,因此没有办法接下去处理MotionEvent.ACTION_UP,解决方法是在MotionEvent.ACTION_DOWN触发后返回true,这样本层容器才可以处理MotionEvent.ACTION_UP。
参考文章:点击打开链接
效果图:
滑屏后: