Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            在實現多個圖片的切換功能時,使用到了手勢事件功能,但同時需要給圖片增加一個單擊事件去執行其它功能。增加單擊事件后,圖片會截取到touchdown并不再往下傳遞,導致手勢事件失效,這里給出了其解決辦法,稍后會整理出多圖切換內容 先看解決辦法,在這之前,需要了解?OnGestureListener 中?onDown、onFling、onLongPress、onScroll、onShowPress、onSingleTapUp的執行順序以及其執行原由。這里做了簡單總結 
boolean onDown(MotionEvent e)
解釋:Touch down時觸發
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解釋:Touch了滑動一點距離后,up時觸發。void onLongPress(MotionEvent e)
解釋:Touch了不移動一直Touch down時觸發boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解釋:Touch了滑動時觸發。void onShowPress(MotionEvent e)
解釋:Touch了還沒有滑動時觸發
(與onDown,onLongPress比較
onDown只要Touch down一定立刻觸發。而Touchdown后過一會沒有滑動先觸發onShowPress再是onLongPress。所以Touchdown后一直不滑動,onDown->onShowPress->onLongPress這個順序觸發。
)boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解釋:上面這兩個函數都是在touch down后又沒有滑動(onScroll),又沒有長按(onLongPress),然后Touchup時觸發。點擊一下非常快的(不滑動)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed點擊一下稍微慢點的(不滑動)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
 到了這里,就已經很明了的清楚了,在onDown以后且onFling以前執行的函數有onShowPress、onSingleTapUp,我已經做過了測試不過非常快的點擊還是稍微慢的點擊都會觸發?onSingleTapUp ,因此只需要在這個函數上做一下功夫就可以了 
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Log.d("Tag", "singletagup");
this.viewfliper.setClickable(true);
Intent intent = new Intent(context, PhotoScaleActivity.class);
startActivity(intent);
this.viewfliper.setClickable(false);
return false;
}
 好了,這樣就已經實現了想要的功能了~ ?新記錄~
                            
                        
                        
                        總結
以上是生活随笔為你收集整理的Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android WebView中使用lo
- 下一篇: Android在使用WebView时,通
