è¿ä¸ªå¯ä»¥ç¨onTouchæ¥å®ç°ï¼touchäºä»¶ææææä¸ï¼ç§»å¨ï¼æ¾å¼çç¸å ³apiã
å ³äºTouchäºä»¶ç说æï¼
1.å ³äºäºä»¶ææ
å¨Androidä¸ï¼äºä»¶ä¸»è¦å æ¬ç¹æãé¿æãææ½ãæ»å¨çï¼ç¹æåå æ¬åå»ååå»ï¼å¦å¤è¿å æ¬åææä½åå¤ææä½ãææè¿äºé½ææäºAndroidä¸çäºä»¶ååºãæ»çæ¥è¯´ï¼ææçäºä»¶é½ç±å¦ä¸ä¸ä¸ªé¨åä½ä¸ºåºç¡ï¼
1.æä¸ï¼ACTION_DOWNï¼
2.移å¨ï¼ACTION_MOVEï¼
3.æ¬èµ·ï¼ACTION_UPï¼
ææçæä½äºä»¶é¦å å¿ é¡»æ§è¡çæ¯æä¸æä½ï¼ACTIONDOWNï¼ï¼ä¹åææçæä½é½æ¯ä»¥æä¸æä½ä½ä¸ºåæï¼å½æä¸æä½å®æåï¼æ¥ä¸æ¥å¯è½æ¯ä¸æ®µç§»å¨ï¼ACTIONMOVEï¼ç¶åæ¬èµ·ï¼ACTION_UPï¼ï¼æè æ¯æä¸æä½æ§è¡å®æå没æ移å¨å°±ç´æ¥æ¬èµ·ãè¿ä¸ç³»åçå¨ä½å¨Androidä¸é½å¯ä»¥è¿è¡æ§å¶ã
2.äºä»¶çå¤çAPI
å¨ViewåViewGroupä¸é½åå¨dispatchTouchEventåonTouchEventæ¹æ³ï¼ä½æ¯å¨ViewGroupä¸è¿æä¸ä¸ªonInterceptTouchEventæ¹æ³ï¼å¨Androidä¸ï¼ææçäºä»¶é½æ¯ä»å¼å§ç»è¿ä¼ éå°å®æäºä»¶çæ¶è´¹ï¼è¿äºæ¹æ³çè¿åå¼å°±å³å®äºæä¸äºä»¶æ¯å¦æ¯ç»§ç»å¾ä¸ä¼ ï¼è¿æ¯è¢«æ¦æªäºï¼ææ¯è¢«æ¶è´¹äºã
public boolean dispatchTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
public boolean onInterceptTouchEvent(MotionEvent event)
3.äºä»¶å¤çAPIç说æ
dispatchTouchEventæ¹æ³ç¨äºäºä»¶çååï¼Androidä¸ææçäºä»¶é½å¿ é¡»ç»è¿è¿ä¸ªæ¹æ³çååï¼ç¶åå³å®æ¯èªèº«æ¶è´¹å½åäºä»¶è¿æ¯ç»§ç»å¾ä¸ååç»åæ§ä»¶å¤çãè¿åtrue表示ä¸ç»§ç»ååï¼äºä»¶æ²¡æ被æ¶è´¹ãè¿åfalseå继ç»å¾ä¸ååï¼å¦ææ¯ViewGroupåååç»onInterceptTouchEventè¿è¡å¤ææ¯å¦æ¦æªè¯¥äºä»¶ã
onTouchEventæ¹æ³ç¨äºäºä»¶çå¤çï¼è¿åtrue表示æ¶è´¹å¤çå½åäºä»¶ï¼è¿åfalseåä¸å¤çï¼äº¤ç»åæ§ä»¶è¿è¡ç»§ç»ååã
onInterceptTouchEventæ¯ViewGroupä¸ææçæ¹æ³ï¼Viewä¸æ²¡æï¼å®çä½ç¨æ¯è´è´£äºä»¶çæ¦æªï¼è¿åtrueçæ¶å表示æ¦æªå½åäºä»¶ï¼ä¸ç»§ç»å¾ä¸ååï¼äº¤ç»èªèº«çonTouchEventè¿è¡å¤çãè¿åfalseåä¸æ¦æªï¼ç»§ç»å¾ä¸ä¼ ã