安卓觸控事件與單擊事件的區別
在學習了安卓的觸控事件和單擊事件後,我做了一個小實驗,從中總結出它們之間的區別。
實驗如下:
首先在activity_main.xml檔案中製作一個簡單的按鈕
在Java class檔案中設定對按鈕的單擊監聽,和觸控監聽:
package com.example.a13468.mydemo03;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("onClick","單擊事件");
}
});
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//如果檢測活動觸控按下
if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.i("onClick","按下螢幕");
}
//如果檢測活動觸控抬起
else if(event.getAction()==MotionEvent.ACTION_UP){
Log.i("onClick","抬起螢幕");
}
return true;
/**
* 如果返回為true觸控事件完全消耗了當前的事件,單擊事件不會被觸法。
* 如果返回為false觸控事件沒有完全消耗了當前的事件,單擊事件會被觸法。
*
*/
}
});
}
}
用Log.i語句可以在日誌檔案中看到詳細的變化
執行程式,點選按鈕,日誌檔案中我們可以看到日誌檔案只輸出了觸控監聽,說明程式只實現了觸控監聽。
當把class檔案中 38行程式碼返回值改成false時,執行程式,點選按鈕,日誌檔案中我們可以看到日誌檔案輸出了觸控監聽和單擊監聽,說明程式實現了兩個監聽:
原因是:如果返回為true觸控事件完全消耗了當前的事件,單擊事件不會被觸法。 如果返回為false觸控事件沒有完
同時可以得出結論,觸控事件和單擊事件的區別:單擊事件只觸法一個動作,但是觸控事件可以觸法多個動作。
相關文章
- 雙擊事件(dblclick)時,不觸發單擊事件(click)事件
- android 觸控(Touch)事件、點選(Click)事件的區別(詳細解析)Android事件
- 觸控事件事件
- 同一個元素的單擊事件與雙擊事件事件
- JS觸控事件JS事件
- 觸控事件02事件
- touch事件與click事件區別事件
- Android觸控事件(上)——事件的由來Android事件
- Android觸控事件(下)——事件的分發Android事件
- ScrollView 觸控事件View事件
- iOS開發系列--觸控事件、手勢識別、搖晃事件、耳機線控iOS事件
- onclick與click事件的區別事件
- focusin與focus事件的區別事件
- Unity觸控式螢幕觸控事件定義Unity事件
- Android觸控事件的應用Android事件
- input與change事件區別事件
- Android觸控事件(續)——點選長按事件Android事件
- Flutter:如何響應觸控事件Flutter事件
- 觸控事件獲取座標事件
- React事件與普通HTML事件有什麼區別React事件HTML
- input事件和change事件區別事件
- 微信小程式之觸控事件(六)微信小程式事件
- android 管理ViewGroup中的觸控事件AndroidView事件
- 通過程式碼控制View的觸控事件被觸發View事件
- loadend 與 load 事件區別事件
- 微信小程式單擊事件與長按事件衝突的解決辦法微信小程式事件
- Android觸控事件傳遞機制Android事件
- 【透鏡系列】看穿 > 觸控事件分發 >事件
- iOS學習筆記05 觸控事件iOS筆記事件
- Android中TouchEvent觸控事件機制Android事件
- Android 觸控事件處理機制Android事件
- iOS開發學習之觸控事件和手勢識別iOS事件
- Android中觸控事件的傳遞機制Android事件
- [翻譯]整合滑鼠、觸控 和觸控筆事件的Html5 Pointer Event Api事件HTMLAPI
- ext4 tree單擊事件事件
- 事件風暴EventStorming與事件建模EventModeling的區別 | rafalmaciag事件ORMMac
- 【.NET】多執行緒:自動重置事件與手動重置事件的區別執行緒事件
- focusout和blur事件的區別事件