鸿蒙开发之增大点击响应热区responseRegion

发布时间:2024年01月11日

系统提供了增大响应热区的API:responseRegion。需要传递4个参数,

x方向坐标

y方向坐标

width响应的宽度(支持百分比和具体长度)

height响应的高度(支持百分比和具体长度)

具体使用如下:


import Prompt from '@system.prompt'
//热区
@Entry
@Component
struct OfficialRectanglePage {
  @State message: string = 'Hello World'
  @State textW: number = 0 //热区组件宽度
  @State textH: number = 0 //热区组件高度

  build() {
    Row() {
      Column() {

        Text(this.message)
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
          .backgroundColor(Color.Orange)
          //监听组件的大小变化,来动态的设置响应区域大小
          .onAreaChange((oldValue,newValue) => {
            this.textW = new Number(newValue.width).valueOf()
            this.textH = new Number(newValue.height).valueOf()
          })
          .responseRegion({
            x:-50, //x方向从-50vp开始响应
            y:-80, //y方向从-80vp开始响应
            width:this.textW+100, //宽热区左右各增大50,也就是+100
            height:this.textH+160 //高热区上下各增大80,也就是+160
          })
          .onClick(() => {
            Prompt.showToast({message:'click text'})
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

当然,也可以通过设置百分比的方式设置热区的宽高,如扩大按钮热区一倍的高度

 Button("增大热区")
        .responseRegion({ x: 0, y: 0, width: '100%', height: '200%' })

文章来源:https://blog.csdn.net/Lu_Ca/article/details/135520997
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。