android onclick事件和ontouch事件发生先后顺序和关联
Button的onTouch,onClick,onLongClick事件發(fā)生先后順序和關(guān)聯(lián):
一,onTouch返回false
首先是onTouch事件的down事件發(fā)生,此時,如果長按,觸發(fā)onLongClick事件;
然后是onTouch事件的up事件發(fā)生,up完畢,最后觸發(fā)onClick事件。
?
二,onTouch返回true
首先是onTouch事件的down事件發(fā)生,然后是onTouch事件的up事件發(fā)生;期間不觸發(fā)onClick和onLongClick事件
?
三,onTouch:down返回true,up返回false:結(jié)果同二。
機制分析:
?? onTouch事件中:down事件返回值標記此次事件是否為點擊事件(返回false,是點擊事件;返回true,不記為點擊事件),而up事件標記此次事件結(jié)束時間,也就是判斷是否為長按。
只要當down返回true時候,系統(tǒng)將不把本次事件記錄為點擊事件,也就不會觸發(fā)onClick或者onLongClick事件了。因此盡管當up的時候返回false,系統(tǒng)也不會繼續(xù)觸發(fā)onClick事件了。
?
四,onTouch:down返回false,up返回true:
首先是onTouch事件的down事件發(fā)生,此時:
長按,觸發(fā)onLongClick事件,然后是onTouch事件的up事件發(fā)生,完畢。
短按,先觸發(fā)onTouch的up事件, 到一定時間后,自動觸發(fā)onLongClick事件。
機制分析:
? onTouch事件中:down事件返回值標記此次事件是否為點擊事件(返回false,是點擊事件;返回true,不記為點擊事件),而up事件標記此次事件結(jié)束時間,也就是判斷是否為長按。
? 當down返回false,標記此次事件為點擊事件,而up返回了true,則表示此次事件一直沒有結(jié)束,也就是一直長按下去了,達到長按臨界時間后,自然觸發(fā)長按事件,而onClick事件沒有觸發(fā)到
?
轉(zhuǎn)載于:https://www.cnblogs.com/andriod-html5/archive/2011/12/20/2539247.html
總結(jié)
以上是生活随笔為你收集整理的android onclick事件和ontouch事件发生先后顺序和关联的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [译]WPF 应用程序和MVVM设计模式
- 下一篇: 这篇文章让我步入了无线时代,感激原创。