Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法
生活随笔
收集整理的這篇文章主要介紹了
Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在實(shí)現(xiàn)多個(gè)圖片的切換功能時(shí),使用到了手勢(shì)事件功能,但同時(shí)需要給圖片增加一個(gè)單擊事件去執(zhí)行其它功能。增加單擊事件后,圖片會(huì)截取到touchdown并不再往下傳遞,導(dǎo)致手勢(shì)事件失效,這里給出了其解決辦法,稍后會(huì)整理出多圖切換內(nèi)容 先看解決辦法,在這之前,需要了解?OnGestureListener 中?onDown、onFling、onLongPress、onScroll、onShowPress、onSingleTapUp的執(zhí)行順序以及其執(zhí)行原由。這里做了簡(jiǎn)單總結(jié)
boolean onDown(MotionEvent e)
解釋:Touch down時(shí)觸發(fā)
boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解釋:Touch了滑動(dòng)一點(diǎn)距離后,up時(shí)觸發(fā)。void onLongPress(MotionEvent e)
解釋:Touch了不移動(dòng)一直Touch down時(shí)觸發(fā)boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解釋:Touch了滑動(dòng)時(shí)觸發(fā)。void onShowPress(MotionEvent e)
解釋:Touch了還沒(méi)有滑動(dòng)時(shí)觸發(fā)
(與onDown,onLongPress比較
onDown只要Touch down一定立刻觸發(fā)。而Touchdown后過(guò)一會(huì)沒(méi)有滑動(dòng)先觸發(fā)onShowPress再是onLongPress。所以Touchdown后一直不滑動(dòng),onDown->onShowPress->onLongPress這個(gè)順序觸發(fā)。
)boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解釋:上面這兩個(gè)函數(shù)都是在touch down后又沒(méi)有滑動(dòng)(onScroll),又沒(méi)有長(zhǎng)按(onLongPress),然后Touchup時(shí)觸發(fā)。點(diǎn)擊一下非常快的(不滑動(dòng))Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed點(diǎn)擊一下稍微慢點(diǎn)的(不滑動(dòng))Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
到了這里,就已經(jīng)很明了的清楚了,在onDown以后且onFling以前執(zhí)行的函數(shù)有onShowPress、onSingleTapUp,我已經(jīng)做過(guò)了測(cè)試不過(guò)非常快的點(diǎn)擊還是稍微慢的點(diǎn)擊都會(huì)觸發(fā)?onSingleTapUp ,因此只需要在這個(gè)函數(shù)上做一下功夫就可以了
@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;
}
好了,這樣就已經(jīng)實(shí)現(xiàn)了想要的功能了~ ?新記錄~
總結(jié)
以上是生活随笔為你收集整理的Android Activity使用OnGesture事件以后与子View的Click事件冲突解决办法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android WebView中使用lo
- 下一篇: android sina oauth2.