成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

HarmonyOS實戰(zhàn)—滑動事件的三個動作

系統(tǒng) OpenHarmony
滑動事件里面分為三個動作:按下不松,移動,抬起。在按下 、移動、松開的過程,代碼會不斷去調(diào)用本類中的 onTouchEvent方法。

 [[415600]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

Table of Contents

1. 滑動事件的三個動作

2. 實現(xiàn)案例:按下、移動或松開都要修改文本的內(nèi)容

3. 按下、滑動、松開 參數(shù)說明

4. 驗證 按下、 移動、松開的過程,代碼會不斷去調(diào)用本類中的 onTouchEvent方法

1. 滑動事件的三個動作

  • 接口名:TouchEventListener
  • 滑動事件里面分為三個動作:按下不松,移動,抬起。
  1. PRIMARY_POINT_DOWN:按下不松。 
  2. POINT_MOVE:移動。 
  3. PRIMARY_POINT_UP:抬起。 
  • 方法返回值:
  1. true 表示繼續(xù)執(zhí)行后面的動作。 
  2. false 表示不會繼續(xù)執(zhí)行后面的動作。 
  • 涉及到如下三個動作,根據(jù)用戶按下位置和松下位置,就可以辨別用戶是上、下、左、或右滑動。

  • 如:可以辨別出用戶是向右滑動(簡稱:右滑)

  • 如:可以辨別出用戶是向下滑動(簡稱:下滑)

2. 實現(xiàn)案例:按下、移動或松開都要修改文本的內(nèi)容

  • 因為要在整個屏幕上滑動,所以要給最外面的布局DirectionalLayout設(shè)置滑動事件,加個id
  • 按下、移動或抬起都要修改文本的內(nèi)容
  • 新建項目:ListenerApplication4

代碼實現(xiàn)

ability_main

  • 采用默認生成的Text文本內(nèi)容,在此基礎(chǔ)上給DirectionalLayout布局和Text組件分別加上id
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DirectionalLayout 
  3.     ohos:id="$+id:dl" 
  4.     xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  5.     ohos:height="match_parent" 
  6.     ohos:width="match_parent" 
  7.     ohos:alignment="center" 
  8.     ohos:orientation="vertical"
  9.  
  10.     <Text 
  11.         ohos:id="$+id:text1" 
  12.         ohos:height="match_content" 
  13.         ohos:width="match_content" 
  14.         ohos:background_element="$graphic:background_ability_main" 
  15.         ohos:layout_alignment="horizontal_center" 
  16.         ohos:text="$string:mainability_HelloWorld" 
  17.         ohos:text_size="40vp" 
  18.         /> 
  19.  
  20. </DirectionalLayout> 

MainAbilitySlice

  • 采用當前類作為實現(xiàn)類接口的方式編寫
  1. package com.xdr630.listenerapplication.slice; 
  2.  
  3. import com.xdr630.listenerapplication.ResourceTable; 
  4. import ohos.aafwk.ability.AbilitySlice; 
  5. import ohos.aafwk.content.Intent; 
  6. import ohos.agp.components.Component; 
  7. import ohos.agp.components.DirectionalLayout; 
  8. import ohos.agp.components.Text; 
  9. import ohos.multimodalinput.event.TouchEvent; 
  10.  
  11. public class MainAbilitySlice extends AbilitySlice implements Component.TouchEventListener { 
  12.  
  13.     Text text1 = null
  14.  
  15.     @Override 
  16.     public void onStart(Intent intent) { 
  17.         super.onStart(intent); 
  18.         super.setUIContent(ResourceTable.Layout_ability_main); 
  19.  
  20.         //1.先找到整個布局對象 
  21.         DirectionalLayout dl = (DirectionalLayout) findComponentById(ResourceTable.Id_dl); 
  22.         text1 = (Text) findComponentById(ResourceTable.Id_text1); 
  23.  
  24.         //2.給整個布局添加滑動事件 
  25.         //當我們在整個布局滑動的時候,就會調(diào)用本類中的onTouchEvent方法 
  26.         //在按下 移動、松開的過程,代碼會不斷去調(diào)用本類中的 onTouchEvent方法 
  27.         dl.setTouchEventListener(this); 
  28.     } 
  29.  
  30.     @Override 
  31.     public void onActive() { 
  32.         super.onActive(); 
  33.     } 
  34.  
  35.     @Override 
  36.     public void onForeground(Intent intent) { 
  37.         super.onForeground(intent); 
  38.     } 
  39.  
  40.     @Override 
  41.     public boolean onTouchEvent(Component component, TouchEvent touchEvent) { 
  42.         //參數(shù)1:component表示滑動的組件(布局也是一種組件,所以也可以用component表示布局對象) 
  43.         //實際上此時代表的就是DirectionalLayout布局對象,這個布局是鋪滿整個屏幕的 
  44.         //參數(shù)2:touchEvent表示動作對象(按下、滑動、抬起) 
  45.  
  46.         //獲取當前手指對屏幕進行操作(按下、滑動、抬起) 
  47.         int action = touchEvent.getAction(); 
  48.         // 1:表示按下操作 
  49.         // 2:表示松開操作 
  50.         // 3. 表示滑動/移動操作 
  51.  
  52.         if (action == TouchEvent.PRIMARY_POINT_DOWN){ 
  53.             //只要寫按下時需要運行的代碼即可 
  54.             text1.setText("按下"); 
  55.         }else if (action == TouchEvent.POINT_MOVE){ 
  56.             //移動或滑動 
  57.             text1.setText("移動"); 
  58.         }else if (action == TouchEvent.PRIMARY_POINT_UP){ 
  59.             //松開或抬起 
  60.             text1.setText("松開"); 
  61.         } 
  62.         return true
  63.     } 
  • 運行:

  • 按下:

  • 移動:

  • 松開:

3. 按下、滑動、松開 參數(shù)說明

可以看到1、2、3數(shù)字分別表示PRIMARY_POINT_DOWN(按下)、PRIMARY_POINT_UP(松開)、POINT_MOVE(移動),所以上面代碼的參數(shù)也可以直接用數(shù)字代替,但為了更直觀表達,建議使用參數(shù),一目了然。

如:使用數(shù)字表示

  1. if (action == 1){ 
  2.         //只要寫按下時需要運行的代碼即可 
  3.         text1.setText("按下"); 
  4.     }else if (action == 3){ 
  5.         //移動或滑動 
  6.         text1.setText("移動"); 
  7.     }else if (action == 2){ 
  8.         //松開或抬起 
  9.         text1.setText("松開"); 
  10.     } 

4. 驗證 按下、 移動、松開的過程,代碼會不斷去調(diào)用本類中的 onTouchEvent方法

  • 在上述代碼的基礎(chǔ)上,定義成員變量計數(shù)器 int count = 0

  • onTouchEvent方法被調(diào)用一次,就給加上一次

  • 把count放在每次操作的后面

  • 當按下時,是第一次調(diào)用,count應(yīng)該為1 

  • 移動的時候隨著鼠標不斷移動,也就會不斷地調(diào)用onTouchEvent方法,count就會遞增

  • 當松開后,也會調(diào)用一次,count在前面數(shù)值的基礎(chǔ)上加1

所以,經(jīng)過驗證:

在 按下 、移動、松開的過程,代碼會不斷去調(diào)用本類中的 onTouchEvent方法。

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2010-08-04 14:02:08

Flex事件機制

2013-08-01 10:16:06

Linux

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠程工作

2021-08-06 14:35:26

鴻蒙HarmonyOS應(yīng)用

2022-04-28 16:54:13

事件響應(yīng)網(wǎng)絡(luò)安全安全工具

2020-06-11 09:00:27

SDN網(wǎng)絡(luò)架構(gòu)網(wǎng)絡(luò)

2018-02-25 07:23:23

2010-09-02 16:46:52

SOAP協(xié)議

2011-12-20 10:41:36

程序員

2022-02-21 14:14:03

SSH加密密鑰

2022-06-22 08:50:53

ERP系統(tǒng)CTO

2023-06-14 20:58:05

2017-09-30 06:45:25

2009-06-26 14:10:24

EJB開發(fā)

2011-05-16 16:26:14

EJB

2022-03-22 14:06:19

云安全漏洞云計算

2022-05-07 10:51:42

DevOps左移應(yīng)用程序

2022-05-12 12:55:28

容器Kubernetes運行容器

2022-05-27 12:40:25

前端測試項目

2020-07-03 07:56:34

Golang編程語言
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 美女张开腿露出尿口 | 欧美一级片在线 | 天天操操操操操 | 日韩欧美操 | 国产精品av久久久久久久久久 | 日韩欧美1区2区 | 日本视频在线播放 | 欧美日韩综合视频 | 久久国产精品72免费观看 | 亚洲欧洲国产视频 | 亚洲精品永久免费 | av综合站| 欧美一级高潮片免费的 | 久久久久久久av | 成人精品国产免费网站 | 国产精品第2页 | 国产一区久久 | 亚洲精品中文在线 | 欧美日韩高清 | 亚洲国产高清免费 | 国产精品久久久久久久免费大片 | 欧美黄色一区 | 亚洲二区精品 | 九九亚洲精品 | 玩丰满女领导对白露脸hd | 蜜臀久久| 国产japanhdxxxx麻豆 | 精品日韩一区 | 日日干干| 久久一二区| jvid精品资源在线观看 | 中文字幕日韩一区 | 国产91精品在线 | 成人精品视频在线观看 | 国产精品久久久久久久久久久久久 | 欧美一区二区三区四区视频 | 成人久久18免费网站麻豆 | 日韩激情在线 | 午夜精品一区 | 男人亚洲天堂 | 精品一区二区三区在线观看国产 |