怎么让按钮在没响应之前保持按压的状态?

如果我希望按钮按下之后,事件没响应之前,按钮保持按下的状态(或者其他锁住状态,又或者挑出个弹窗提示加载中)

此时按钮不能再次点击,直至按钮响应事件结束,例如这里按钮锁住2s,应该怎么实现呢?

struct Index {
  @State num: number = 0;

  build() {
    Row() {
      Column() {
        Button(this.num.toString()).onClick(() => {
          setTimeout(()=>{ this.num++; }, 2000);
        })
          .width("20%")
      }
      .width('100%')
    }
    .height('100%')
  }
}
UI
2024-08-12 13:51:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Sidneyen

用enable属性可以实现吧,弄个boolean的变量,点击了就置为false,进入禁用状态,等待2秒后置为true,不知道我理解的对不对。

@Entry
@Component
struct ClickTest {
  @State num: number = 0;
  @State clickable: boolean = true

  build() {
    Row() {
      Column() {
        Button(this.num.toString()).onClick(() => {
          this.clickable = false
          console.info("两秒前")
          setTimeout(() => {
            console.info("两秒后")
            this.num++;
            this.clickable = true
          }, 2000);
        })
          .enabled(this.clickable)
          .width("20%")
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
2024-08-12 15:19:49
相关问题
FA里内嵌H5是怎么保持登录状态?
7074浏览 • 1回复 待解决
HarmonyOS 图片按压效果实现
131浏览 • 2回复 待解决
怎么才能让编写工具保持活跃?
1331浏览 • 1回复 待解决
如何最大化按钮不可用
2143浏览 • 1回复 待解决
如何取消Button默认按压效果?
658浏览 • 1回复 待解决