鸿蒙Next开发-【自定义按钮实现长按点击事件】

鸿蒙Next开发-【自定义按钮实现长按点击事件】

API9,直接上代码

import router from '@ohos.router'
@Component
export struct LongPressButton {
  private  title: string = '按钮'
  @State isPress: boolean = false
  //倒计时id
  private timerId: number = 0
  //声明长按3000毫秒,可以自己改时长
  private longTime = 1000;

  //声明一个长按方法,供外部使用
  onLongClick?: () => void;

  build() {//2.创建build,内部放上ui内容
    Row() {
      Text(this.title)
        .fontSize(20)
        .fontColor(Color.White)
        .fontWeight(FontWeight.Bold)
    }
    .width('150')
    .height('55')
    .padding({left:18,right:18,top:10})
    .justifyContent(FlexAlign.Center)
    .borderRadius(8)
    .backgroundColor(this.isPress?0x333333:0x00ffff)
    .onTouch((e)=>{
      if (e.type == TouchType.Down) {
        console.log('我是down')
        //倒计时
        this.timerId = setTimeout(() => {
          clearTimeout(this.timerId)
          this.isPress = true;
          this.onLongClick()
        }, this.longTime);
      }
      if (e.type == TouchType.Up) {
        this.isPress = false;
        clearTimeout(this.timerId)
      }
    })
  }
}

页面调用

LongPressButton({title:"长按按钮",onLongClick:()=>{
        console.log('我是外部的长按事件')
        this.age++
      }})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值