在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙ArkTS聲明式開發:跨平臺支持列表【綁定手勢方法】 手勢處理

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-15 09:17 ? 次閱讀

綁定手勢方法

為組件綁定不同類型的手勢事件,并設置事件的響應方法。

說明:
開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。
從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

綁定手勢識別

通過如下屬性給組件綁定手勢識別,手勢識別成功后可以通過事件回調通知組件。

名稱參數類型默認值描述
gesturegesture: [GestureType], mask?: [GestureMask]gesture: -, mask: GestureMask.Normal綁定手勢。 - gesture: 綁定的手勢類型, - mask: 事件響應設置。
priorityGesturegesture: [GestureType], mask?: [GestureMask]gesture: -, mask: GestureMask.Normal綁定優先識別手勢。 - gesture: 綁定的手勢類型, - mask: 事件響應設置。 1、默認情況下,子組件優先識別通過gesture綁定的手勢,當父組件配置priorityGesture時,父組件優先識別priorityGesture綁定的手勢。 2、長按手勢時,設置觸發長按的最短時間小的組件會優先響應,會忽略priorityGesture設置。
parallelGesturegesture: [GestureType], mask?: [GestureMask]gesture: -, mask: GestureMask.Normal綁定可與子組件手勢同時觸發的手勢。 - gesture: 綁定的手勢類型。 - mask: 事件響應設置。 手勢事件為非冒泡事件。父組件設置parallelGesture時,父子組件相同的手勢事件都可以觸發,實現類似冒泡效果。若父子組件中同時綁定單擊手勢事件和雙擊手勢事件,則只響應單擊手勢事件。

GestureType

名稱描述
[TapGesture]點擊手勢,支持單次點擊、多次點擊識別。
[LongPressGesture]長按手勢。
[PanGesture]平移手勢,滑動最小距離為5vp時識別成功。
[PinchGesture]捏合手勢。
[RotationGesture]旋轉手勢。
[SwipeGesture]滑動手勢,滑動最小速度為100vp/s時識別成功。
[GestureGroup]手勢識別組,多種手勢組合為復合手勢,支持連續識別、并行識別和互斥識別。

GestureMask枚舉說明

名稱描述
Normal不屏蔽子組件的手勢,按照默認手勢識別順序進行識別。
IgnoreInternal屏蔽子組件的手勢,包括子組件上系統內置的手勢,如子組件為List組件時,內置的滑動手勢同樣會被屏蔽。

響應手勢事件

組件通過手勢事件綁定不同GestureType的手勢對象,各手勢對象在響應手勢操作的事件回調中提供手勢相關信息。下面通過TapGesture手勢對象的onAction事件響應點擊事件,獲取事件相關信息。其余手勢對象的事件定義見各個手勢對象章節。 若需綁定多種手勢請使用 [組合手勢]。

TapGesture事件說明

名稱功能描述
onAction((event?:GestureEvent) => void)Tap手勢識別成功回調。

GestureEvent對象說明

名稱類型描述
repeatboolean是否為重復觸發事件,用于LongPressGesture手勢觸發場景。
offsetXnumber手勢事件x軸相對偏移量,單位為vp,用于PanGesture手勢觸發場景,從左向右滑動offsetX為正,反之為負。
offsetYnumber手勢事件y軸相對偏移量,單位為vp,用于PanGesture手勢觸發場景,從上向下滑動offsetY為正,反之為負。
anglenumber用于RotationGesture手勢觸發場景時,表示旋轉角度。 用于SwipeGesture手勢觸發場景時,表示滑動手勢的角度,即兩根手指間的線段與水平方向的夾角變化的度數。**說明:**角度計算方式:滑動手勢被識別到后,連接兩根手指之間的線被識別為起始線條,隨著手指的滑動,手指之間的線條會發生旋轉,根據起始線條兩端點和當前線條兩端點的坐標,使用反正切函數分別計算其相對于水平方向的夾角,最后arctan2(cy2-cy1,cx2-cx1)-arctan2(y2-y1,x2-x1)為旋轉的角度。以起始線條為坐標系,順時針旋轉為0到180度,逆時針旋轉為-180到0度。
scalenumber縮放比例,用于PinchGesture手勢觸發場景。
pinchCenterXnumber捏合手勢中心點相對于當前組件元素左上角x軸坐標,單位為vp,用于PinchGesture手勢觸發場景。
pinchCenterYnumber捏合手勢中心點相對于當前組件元素左上角y軸坐標,單位為vp,用于PinchGesture手勢觸發場景。
speed8+number滑動手勢速度,即所有手指滑動的平均速度,單位為vp/秒,用于SwipeGesture手勢觸發場景。
fingerList8+[FingerInfo]觸發事件的所有手指信息,用于LongPressGesture與TapGesture手勢觸發場景。
timestamp8+number事件時間戳。
target8+[EventTarget]觸發手勢事件的元素對象顯示區域。
source8+[SourceType]事件輸入設備。
pressure9+number按壓的壓力大小。
tiltX9+number手寫筆在設備平面上的投影與設備平面X軸的夾角。
tiltY9+number手寫筆在設備平面上的投影與設備平面Y軸的夾角。
sourceTool9+[SourceTool]事件輸入源。
velocityX10+number用于[PanGesture]手勢中,獲取當前手勢的x軸方向速度。坐標軸原點為屏幕左上角,分正負方向速度,從左往右為正,反之為負。
velocityY10+number用于[PanGesture]手勢中,獲取當前手勢的y軸方向速度。坐標軸原點為屏幕左上角,分正負方向速度,從上往下為正,反之為負。
velocity10+number用于[PanGesture]手勢中,獲取當前手勢的主方向速度。為xy軸方向速度的平方和的算術平方根。

SourceType枚舉說明

名稱描述
Unknown未知設備。
Mouse鼠標。
TouchScreen觸摸屏。

FingerInfo對象說明

名稱類型描述
idnumber手指的索引編號。
globalXnumber相對于應用窗口左上角的x軸坐標。
globalYnumber相對于應用窗口左上角的y軸坐標。
localXnumber相對于當前組件元素左上角的x軸坐標。
localYnumber相對于當前組件元素左上角的y軸坐標。

SourceTool枚舉說明

名稱描述
Unknown未知輸入源。
Finger手指輸入。
Pen手寫筆輸入。HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

搜狗高速瀏覽器截圖20240326151450.png

示例

// xxx.ets
@Entry
@Component
struct GestureSettingsExample {
  @State priorityTestValue: string = ''
  @State parallelTestValue: string = ''

  build() {
    Column() {
      Column() {
        Text('TapGesture:' + this.priorityTestValue).fontSize(28)
          .gesture(
          TapGesture()
            .onAction(() = > {
              this.priorityTestValue += 'nText'
            }))
      }
      .height(200)
      .width(250)
      .padding(20)
      .margin(20)
      .border({ width: 3 })
      // 設置為priorityGesture時,點擊文本會忽略Text組件的TapGesture手勢事件,優先識別父組件Column的TapGesture手勢事件
      .priorityGesture(
      TapGesture()
        .onAction((event: GestureEvent) = > {
          this.priorityTestValue += 'nColumn'
        }), GestureMask.IgnoreInternal)

      Column() {
        Text('TapGesture:' + this.parallelTestValue).fontSize(28)
          .gesture(
          TapGesture()
            .onAction(() = > {
              this.parallelTestValue += 'nText'
            }))
      }
      .height(200)
      .width(250)
      .padding(20)
      .margin(20)
      .border({ width: 3 })
      // 設置為parallelGesture時,點擊文本會同時觸發子組件Text與父組件Column的TapGesture手勢事件
      .parallelGesture(
      TapGesture()
        .onAction((event: GestureEvent) = > {
          this.parallelTestValue += 'nColumn'
        }), GestureMask.Normal)
    }
  }
}

zh-cn_image_0000001210195016

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 組件
    +關注

    關注

    1

    文章

    512

    瀏覽量

    17838
  • 手勢
    +關注

    關注

    0

    文章

    7

    瀏覽量

    5023
  • 鴻蒙
    +關注

    關注

    57

    文章

    2358

    瀏覽量

    42876
收藏 人收藏

    評論

    相關推薦

    HarmonyOS應用API手勢方法-綁定手勢方法

    述:為組件綁定不同類型的手勢事件,并設置事件的響應方法。Api:從API Version 7開始支持一、綁定
    發表于 11-23 15:53

    HarmonyOS/OpenHarmony應用開發-ArkTS聲明開發范式

    基于ArkTS聲明開發范式的方舟開發框架是一套開發極簡、高性能、
    發表于 01-17 15:09

    HarmonyOS/OpenHarmony(Stage模型)應用開發手勢綁定方法

    通過給各個組件綁定不同的手勢事件,并設計事件的響應方式,當手勢識別成功時,ArkUI框架將通過事件回調通知組件手勢識別的結果。 一、gesture(常規
    發表于 08-29 15:24

    HarmonyOS/OpenHarmony(Stage模型)應用開發組合手勢(一)連續識別

    組合手勢由多種單一手勢組合而成,通過在GestureGroup中使用不同的GestureMode來聲明該組合手勢的類型,支持連續識別、并行識
    發表于 09-07 15:20

    鴻蒙ArkTS聲明開發平臺支持列表【焦點事件】

    焦點事件指頁面焦點在可獲焦組件間移動時觸發的事件,組件可使用焦點事件來處理相關邏輯。
    的頭像 發表于 05-27 22:17 ?346次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【焦點事件】

    鴻蒙ArkTS聲明開發平臺支持列表【形狀裁剪】 通用屬性

    參數為相應類型的組件,按指定的形狀對當前組件進行裁剪;參數為boolean類型時,設置是否按照父容器邊緣輪廓進行裁剪。 默認值:false 從API version 9開始,該接口支持ArkTS卡片中使用。
    的頭像 發表于 06-04 15:22 ?478次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形狀裁剪】 通用屬性

    鴻蒙ArkTS聲明開發平臺支持列表【菜單控制】 通用屬性

    為組件綁定彈出菜單,彈出菜單以垂直列表形式顯示菜單項,可通過長按、點擊或鼠標右鍵觸發。
    的頭像 發表于 06-06 09:17 ?693次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【菜單控制】 通用屬性

    鴻蒙ArkTS聲明開發平臺支持列表【多態樣式】 通用屬性

    設置組件不同狀態的樣式。 從API version 9開始,該接口支持ArkTS卡片中使用。
    的頭像 發表于 06-07 09:48 ?414次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【多態樣式】 通用屬性

    鴻蒙ArkTS聲明開發平臺支持列表【觸摸熱區設置】觸摸交互控制

    適用于支持通用點擊事件、通用觸摸事件、通用手勢處理的組件。
    的頭像 發表于 06-13 10:33 ?469次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【觸摸熱區設置】觸摸交互控制

    鴻蒙ArkTS聲明開發平臺支持列表【TapGesture】 基礎手勢

    支持單擊、雙擊和多次點擊事件的識別。
    的頭像 發表于 06-17 14:19 ?357次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【TapGesture】 基礎<b class='flag-5'>手勢</b>

    鴻蒙ArkTS聲明開發平臺支持列表LongPressGesture之基礎手勢

    用于觸發長按手勢事件,觸發長按手勢的最少手指數為1,最短長按時間為500毫秒。
    的頭像 發表于 06-17 09:59 ?474次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>LongPressGesture之基礎<b class='flag-5'>手勢</b>

    鴻蒙ArkTS聲明開發平臺支持列表PanGesture之基礎手勢

    用于觸發拖動手勢事件,滑動的最小距離為5vp時拖動手勢識別成功。
    的頭像 發表于 06-17 15:03 ?443次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>PanGesture之基礎<b class='flag-5'>手勢</b>

    鴻蒙ArkTS聲明開發平臺支持列表PinchGesture之基礎手勢

    用于觸發捏合手勢,觸發捏合手勢的最少手指為2指,最大為5指,最小識別距離為3vp。
    的頭像 發表于 06-18 09:33 ?365次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>PinchGesture之基礎<b class='flag-5'>手勢</b>

    鴻蒙ArkTS聲明開發平臺支持列表RotationGesture之基礎手勢

    用于觸發旋轉手勢事件,觸發旋轉手勢的最少手指為2指,最大為5指,最小改變度數為1度。
    的頭像 發表于 06-18 09:27 ?294次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>RotationGesture之基礎<b class='flag-5'>手勢</b>

    鴻蒙ArkTS聲明開發平臺支持列表 組合手勢

    手勢識別組合,即多種手勢組合為復合手勢,支持連續識別、并行識別和互斥識別。
    的頭像 發表于 06-19 09:33 ?428次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>聲明</b><b class='flag-5'>式</b><b class='flag-5'>開發</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b> 組合<b class='flag-5'>手勢</b>
    主站蜘蛛池模板: 永久看日本大片免费| 色妞综合| 精品热99| 国产精品yy9299在线观看 | 天堂最新版中文网| 天天拍天天操| 成年人网站免费观看| 艹逼免费视频| 天天艹| 99久久婷婷免费国产综合精品| 久久噜噜噜久久亚洲va久| 黄色三级视频| 一级特色黄大片| 毛片8| 色花堂国产精品首页第一页| 国产产一区二区三区久久毛片国语| 丁香六月婷婷七月激情| 午夜性福| 国产在视频线精品视频2021| 好大好紧好爽好湿润视频| 波多野结衣中文字幕教师| 欧美天天| 手机看片福利盒子久久青| 国产网站大全| 55夜色66夜色国产精品站| 91大神在线视频观看| 美女隐私黄www视频| 九九热在线免费视频| 午夜日韩精品| 欧美zoozzooz性欧美| 成人精品一区二区三区电影| 日夜夜操| 中文字幕一区二区三区视频在线| 国产毛片久久国产| 色天使色护士| 国产精品综合色区在线观看| 国产成人一区二区在线不卡| 天天爽夜夜爽人人爽| 人人干在线| xxx黄色片| 一级一级女人18毛片|