android事件分发笔记
1.SimpleOnGestureListener
遇到的問題:
自己定義一個按鈕繼承自Button,一開始改變按鈕顏色的操作放在onTouchEvent的ATION_DOWN里觸發(fā)。
這時問題來了,放在ScrollView里面,發(fā)現(xiàn)如果碰到按鈕去滑動時,會觸發(fā)按鈕改變顏色,顯然這是不對的。
后來查了一下,發(fā)現(xiàn)了SimpleOnGestureListener
重寫了onDown事件和onSingleTapUp事件,代碼如下
private SimpleOnGestureListener mSimpleOnGestureListener = new SimpleOnGestureListener(){@Overridepublic boolean onSingleTapUp(MotionEvent e) {//改變顏色只在點擊的時候,如果在onDown里的話,滑動也會改變顏色setChecked(!mIsChecked);return true;}@Overridepublic boolean onDown(MotionEvent e) {//這里返回true才會調(diào)用onSingleTapUpreturn true;}};在自定義Button里重寫onTouchEvent即可
@Override public boolean onTouchEvent(MotionEvent event) { return mGestureDetector.onTouchEvent(event); }?QUOTE
1. 點擊屏幕上的某項的執(zhí)行流程? 有兩種情況,一種是時間很短,一種時間稍長
時間很短:onDown--------》onSingleTapUp--------》onSingleTapConfirmed
時間稍長:onDown--------》onShowPress------》onSingleTapUp--------》onSingleTapConfirmed
2. 長按事件
onDown--------》onShowPress------》onLongPress
3.拋:手指觸動屏幕后,稍微滑動后立即松開
onDown-----》onScroll----》onScroll----》onScroll----》………----->onFling
4.拖動
onDown------》onScroll----》onScroll------》onFiling
注意:有的時候會觸發(fā)onFiling,但是有的時候不會觸發(fā),個人理解是人的動作不標準所致。
轉(zhuǎn)載于:https://www.cnblogs.com/baron89/p/4042574.html
總結(jié)
以上是生活随笔為你收集整理的android事件分发笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机屏幕适配遇到虚拟键的问题
- 下一篇: 再议Unity 3D