在最近工作中遇到了一個問題,一個ImageView在接收MotionEvent的時候,只收到了ACTION_DOWN消息,而沒有收到ACTION_MOVE和ACTION_UP等后續(xù)消息,查看代碼好久也沒有找到原因,后來在google搜索后才發(fā)現(xiàn),Android觸碰的消息傳遞過程中,內(nèi)含了一個規(guī)則,即: 如果你的View在處理ACITON_DOWN消息的時候,如果返回的是FALSE,即代表當(dāng)前的view沒有處理此消息,則Android系統(tǒng)會認為你不會處理后續(xù)的ACTION_MOVE和ACITON_UP等消息,所以系統(tǒng)不會發(fā)送后續(xù)的消息給view。 總結(jié),如果你的view需要處理各種TOUCH消息,則你在TOUCH的第一個消息即ACTION_DOWN需要返回true,否則后續(xù)的所有的觸碰消息將接收不到。 |
|