觸摸熱區(qū)設置

2024-01-22 16:23 更新

適用于支持通用點擊事件、通用觸摸事件、通用手勢處理的組件。

說明

從API Version 8開始支持。后續(xù)版本如有新增內(nèi)容,則采用上角標單獨標記該內(nèi)容的起始版本。

屬性

名稱

參數(shù)類型

描述

responseRegion

Array<Rectangle> | Rectangle

設置一個或多個觸摸熱區(qū),包括位置和大小。

默認觸摸熱區(qū)為整個組件,默認值:

{

x:0,

y:0,

width:'100%',

height:'100%'

}

從API version 9開始,該接口支持在ArkTS卡片中使用。

Rectangle對象說明

從API version 9開始,該接口支持在ArkTS卡片中使用。

名稱

類型

必填

描述

x

Length

觸摸點相對于組件左上角的x軸坐標。

默認值:0vp

y

Length

觸摸點相對于組件左上角的y軸坐標。

默認值:0vp

width

Length

觸摸熱區(qū)的寬度。

默認值:'100%'

height

Length

觸摸熱區(qū)的高度。

默認值:'100%'

說明

x和y可以設置正負值百分比。當x設置為'100%'時表示熱區(qū)往右偏移組件本身寬度大小,當x設置為'-100%'時表示熱區(qū)往左偏移組件本身寬度大小。當y設置為'100%'時表示熱區(qū)往下偏移組件本身高度大小,當y設置為'-100%'時表示熱區(qū)往上偏移組件本身高度大小。

width和height只能設置正值百分比。width:'100%'表示熱區(qū)寬度設置為該組件本身的寬度。比如組件本身寬度是100vp,那么'100%'表示熱區(qū)寬度也為100vp。height:'100%'表示熱區(qū)高度設置為該組件本身的高度。

百分比相對于組件自身寬高進行計算。

示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct TouchTargetExample {
  5. @State text: string = ""
  6. build() {
  7. Column({ space: 20 }) {
  8. Text("{x:0,y:0,width:'50%',height:'100%'}")
  9. // 熱區(qū)寬度為按鈕的一半,點擊右側(cè)無響應
  10. Button("button1")
  11. .responseRegion({ x: 0, y: 0, width: '50%', height: '100%' })
  12. .onClick(() => {
  13. this.text = 'button1 clicked'
  14. })
  15. // 為一個組件添加多個熱區(qū)
  16. Text("[{x:'100%',y:0,width:'50%',height:'100%'}," +
  17. "\n{ x: 0, y: 0, width: '50%', height: '100%' }]")
  18. Button("button2")
  19. .responseRegion([
  20. { x: '100%', y: 0, width: '50%', height: '100%' }, // 第一個熱區(qū)寬度為按鈕的一半,且右移一個按鈕寬度,點擊button2右側(cè)左邊,點擊事件生效
  21. { x: 0, y: 0, width: '50%', height: '100%' } // 第二個熱區(qū)寬度為按鈕的一半,點擊button2左半邊,點擊事件生效
  22. ])
  23. .onClick(() => {
  24. this.text = 'button2 clicked'
  25. })
  26. // 熱區(qū)大小為整個按鈕,且下移一個按鈕高度,點擊button3下方按鈕大小區(qū)域,點擊事件生效
  27. Text("{x:0,y:'100%',width:'100%',height:'100%'}")
  28. Button("button3")
  29. .responseRegion({ x: 0, y: '100%', width: '100%', height: '100%' })
  30. .onClick(() => {
  31. this.text = 'button3 clicked'
  32. })
  33. Text(this.text).margin({ top: 50 })
  34. }.width('100%').margin({ top: 10 })
  35. }
  36. }

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號