安卓觸控事件與單擊事件的區別
在學習了安卓的觸控事件和單擊事件後,我做了一個小實驗,從中總結出它們之間的區別。
實驗如下:
首先在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)事件
- ScrollView 觸控事件View事件
- JS觸控事件JS事件
- 同一個元素的單擊事件與雙擊事件事件
- touch事件與click事件區別事件
- onclick與click事件的區別事件
- Unity觸控式螢幕觸控事件定義Unity事件
- 事件風暴EventStorming與事件建模EventModeling的區別 | rafalmaciag事件ORMMac
- input與change事件區別事件
- loadend 與 load 事件區別事件
- Flutter:如何響應觸控事件Flutter事件
- 觸控事件獲取座標事件
- React事件與普通HTML事件有什麼區別React事件HTML
- Android觸控事件傳遞機制Android事件
- Android中觸控事件的傳遞機制Android事件
- 【透鏡系列】看穿 > 觸控事件分發 >事件
- iOS學習筆記05 觸控事件iOS筆記事件
- 微信小程式單擊事件與長按事件衝突的解決辦法微信小程式事件
- 【Android Developers Training】 67. 響應觸控事件AndroidDeveloperAI事件
- 【.NET】多執行緒:自動重置事件與手動重置事件的區別執行緒事件
- ext4 tree單擊事件事件
- 表單事件與鍵盤事件學習事件
- 取消事件觸發事件
- H5觸控事件判斷滑動方向H5事件
- 觸控事件分發核心機制優化吸收事件優化
- HTML5觸控事件(touchstart、touchmove和touchend) (轉)HTML事件
- touch事件和click事件多次觸發的問題事件
- android觸控事件分發機制,曾困惑你我的地方Android事件
- 事件 滑鼠事件 表單事件 from表單事件
- Vue事件獲取觸發事件物件和繫結事件物件Vue事件物件
- 大領導給小明安排任務——Android觸控事件Android事件
- js 建立和觸發事件 和 自定義事件JS事件
- 鴻蒙HarmonyOS實戰-ArkUI事件(觸屏事件)鴻蒙UI事件
- 區塊鏈安全————DAO攻擊事件解析區塊鏈事件
- jQuery select 觸發事件jQuery事件
- 大領導又給小明安排任務——Android觸控事件Android事件
- WPF 已知問題 監聽 WMI 事件導致觸控失效事件
- 手機端html5觸屏事件(touch事件)HTML事件