0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙ArkTS聲明式開發(fā):跨平臺(tái)支持列表 組合手勢(shì)

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-19 09:33 ? 次閱讀

組合手勢(shì)

手勢(shì)識(shí)別組合,即多種手勢(shì)組合為復(fù)合手勢(shì),支持連續(xù)識(shí)別、并行識(shí)別和互斥識(shí)別。

說(shuō)明:
開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
從API Version 7開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標(biāo)單獨(dú)標(biāo)記該內(nèi)容的起始版本。

接口

GestureGroup(mode: GestureMode, ...gesture: GestureType[])

參數(shù):

參數(shù)名參數(shù)類型必填參數(shù)描述
mode[GestureMode]設(shè)置組合手勢(shì)識(shí)別模式。 默認(rèn)值:GestureMode.Sequence
gesture[TapGesture][LongPressGesture][PanGesture]

GestureMode枚舉說(shuō)明

名稱描述
Sequence順序識(shí)別,按照手勢(shì)的注冊(cè)順序識(shí)別手勢(shì),直到所有手勢(shì)識(shí)別成功。當(dāng)有一個(gè)手勢(shì)識(shí)別失敗時(shí),所有手勢(shì)識(shí)別失敗。 順序識(shí)別手勢(shì)組僅有最后一個(gè)手勢(shì)可以響應(yīng)onActionEnd。
Parallel并發(fā)識(shí)別,注冊(cè)的手勢(shì)同時(shí)識(shí)別,直到所有手勢(shì)識(shí)別結(jié)束,手勢(shì)識(shí)別互相不影響。
Exclusive互斥識(shí)別,注冊(cè)的手勢(shì)同時(shí)識(shí)別,若有一個(gè)手勢(shì)識(shí)別成功,則結(jié)束手勢(shì)識(shí)別。

事件

名稱功能描述
onCancel(event: () => void)順序組合手勢(shì)(GestureMode.Sequence)取消后觸發(fā)回調(diào)。

示例

// xxx.ets
@Entry
@Component
struct GestureGroupExample {
  @State count: number = 0
  @State offsetX: number = 0
  @State offsetY: number = 0
  @State positionX: number = 0
  @State positionY: number = 0
  @State borderStyles: BorderStyle = BorderStyle.Solid

  build() {
    Column() {
      Text('sequence gesturen' + 'LongPress onAction:' + this.count + 'nPanGesture offset:nX: ' + this.offsetX + 'n' + 'Y: ' + this.offsetY)
        .fontSize(15)
    }
    .translate({ x: this.offsetX, y: this.offsetY, z: 0 })
    .height(150)
    .width(200)
    .padding(20)
    .margin(20)
    .border({ width: 3, style: this.borderStyles })
    .gesture(
      // 以下組合手勢(shì)為順序識(shí)別,當(dāng)長(zhǎng)按手勢(shì)事件未正常觸發(fā)時(shí)則不會(huì)觸發(fā)拖動(dòng)手勢(shì)事件
    GestureGroup(GestureMode.Sequence,
    LongPressGesture({ repeat: true })
      .onAction((event?: GestureEvent) = > {
        if (event && event.repeat) {
          this.count++
        }
        console.info('LongPress onAction')
      }),
    PanGesture()
      .onActionStart(() = > {
        this.borderStyles = BorderStyle.Dashed
        console.info('pan start')
      })
      .onActionUpdate((event?: GestureEvent) = > {
        if (event) {
          this.offsetX = this.positionX + event.offsetX
          this.offsetY = this.positionY + event.offsetY
        }
        console.info('pan update')
      })
      .onActionEnd(() = > {
        this.positionX = this.offsetX
        this.positionY = this.offsetY
        this.borderStyles = BorderStyle.Solid
        console.info('pan end')
      })
    )
      .onCancel(() = > {
        console.info('sequence gesture canceled')
      })
    )
  }
}

`HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`

新文檔.png

示意圖:

按順序首先觸發(fā)長(zhǎng)按事件:

zh-cn_image_0000001174104384

按順序首先觸發(fā)長(zhǎng)按事件,長(zhǎng)按事件識(shí)別結(jié)束之后,其次觸發(fā)拖動(dòng)事件,向右下方拖動(dòng):

zh-cn_image1_0000001174104384

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 鴻蒙
    +關(guān)注

    關(guān)注

    59

    文章

    2508

    瀏覽量

    43769
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-ArkTS聲明開發(fā)范式

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

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【點(diǎn)擊事件】

    組件被點(diǎn)擊時(shí)觸發(fā)的事件。
    的頭像 發(fā)表于 05-26 21:25 ?1088次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【點(diǎn)擊事件】

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【觸摸事件】

    當(dāng)手指在組件上按下、滑動(dòng)、抬起時(shí)觸發(fā)。
    的頭像 發(fā)表于 05-27 09:34 ?763次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【觸摸事件】

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【組件快捷鍵事件】

    開發(fā)者可以設(shè)置組件的自定義組合鍵,組合鍵的行為與click行為一致,組件在未獲得焦點(diǎn)狀態(tài)下也可以響應(yīng)自定義組合鍵,每個(gè)組件可以設(shè)置多個(gè)組合
    的頭像 發(fā)表于 05-28 15:49 ?930次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【組件快捷鍵事件】

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【顯隱控制】 通用屬性

    控制當(dāng)前組件顯示或隱藏。注意,即使組件處于隱藏狀態(tài),在頁(yè)面刷新時(shí)仍存在重新創(chuàng)建過(guò)程,因此當(dāng)對(duì)性能有嚴(yán)格要求時(shí)建議使用[條件渲染]代替。 默認(rèn)值:Visibility.Visible 從API version 9開始,該接口支持ArkTS卡片中使用。
    的頭像 發(fā)表于 06-03 14:46 ?858次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【顯隱控制】 通用屬性

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【形狀裁剪】 通用屬性

    參數(shù)為相應(yīng)類型的組件,按指定的形狀對(duì)當(dāng)前組件進(jìn)行裁剪;參數(shù)為boolean類型時(shí),設(shè)置是否按照父容器邊緣輪廓進(jìn)行裁剪。 默認(rèn)值:false 從API version 9開始,該接口支持ArkTS卡片中使用。
    的頭像 發(fā)表于 06-04 15:22 ?696次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形狀裁剪】 通用屬性

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【菜單控制】 通用屬性

    為組件綁定彈出菜單,彈出菜單以垂直列表形式顯示菜單項(xiàng),可通過(guò)長(zhǎng)按、點(diǎn)擊或鼠標(biāo)右鍵觸發(fā)。
    的頭像 發(fā)表于 06-06 09:17 ?1143次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【菜單控制】 通用屬性

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【多態(tài)樣式】 通用屬性

    設(shè)置組件不同狀態(tài)的樣式。 從API version 9開始,該接口支持ArkTS卡片中使用。
    的頭像 發(fā)表于 06-07 09:48 ?672次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【多態(tài)樣式】 通用屬性

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【觸摸熱區(qū)設(shè)置】觸摸交互控制

    適用于支持通用點(diǎn)擊事件、通用觸摸事件、通用手勢(shì)處理的組件。
    的頭像 發(fā)表于 06-13 10:33 ?716次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【觸摸熱區(qū)設(shè)置】觸摸交互控制

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【綁定手勢(shì)方法】 手勢(shì)處理

    為組件綁定不同類型的手勢(shì)事件,并設(shè)置事件的響應(yīng)方法。
    的頭像 發(fā)表于 06-15 09:17 ?1397次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【綁定<b class='flag-5'>手勢(shì)</b>方法】 <b class='flag-5'>手勢(shì)</b>處理

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表【TapGesture】 基礎(chǔ)手勢(shì)

    支持單擊、雙擊和多次點(diǎn)擊事件的識(shí)別。
    的頭像 發(fā)表于 06-17 14:19 ?603次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【TapGesture】 基礎(chǔ)<b class='flag-5'>手勢(shì)</b>

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表LongPressGesture之基礎(chǔ)手勢(shì)

    用于觸發(fā)長(zhǎng)按手勢(shì)事件,觸發(fā)長(zhǎng)按手勢(shì)的最少手指數(shù)為1,最短長(zhǎng)按時(shí)間為500毫秒。
    的頭像 發(fā)表于 06-17 09:59 ?777次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>LongPressGesture之基礎(chǔ)<b class='flag-5'>手勢(shì)</b>

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表PanGesture之基礎(chǔ)手勢(shì)

    用于觸發(fā)拖動(dòng)手勢(shì)事件,滑動(dòng)的最小距離為5vp時(shí)拖動(dòng)手勢(shì)識(shí)別成功。
    的頭像 發(fā)表于 06-17 15:03 ?894次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>PanGesture之基礎(chǔ)<b class='flag-5'>手勢(shì)</b>

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表PinchGesture之基礎(chǔ)手勢(shì)

    用于觸發(fā)捏合手勢(shì),觸發(fā)捏合手勢(shì)的最少手指為2指,最大為5指,最小識(shí)別距離為3vp。
    的頭像 發(fā)表于 06-18 09:33 ?636次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>PinchGesture之基礎(chǔ)<b class='flag-5'>手勢(shì)</b>

    鴻蒙ArkTS聲明開發(fā)平臺(tái)支持列表RotationGesture之基礎(chǔ)手勢(shì)

    用于觸發(fā)旋轉(zhuǎn)手勢(shì)事件,觸發(fā)旋轉(zhuǎn)手勢(shì)的最少手指為2指,最大為5指,最小改變度數(shù)為1度。
    的頭像 發(fā)表于 06-18 09:27 ?542次閱讀
    <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'>開發(fā)</b>:<b class='flag-5'>跨</b><b class='flag-5'>平臺(tái)</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>RotationGesture之基礎(chǔ)<b class='flag-5'>手勢(shì)</b>

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品