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

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

此时按钮不能再次点击,直至按钮响应事件结束,例如这里按钮锁住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%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
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%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
分享
微博
QQ
微信
回复
2024-08-12 15:19:49
相关问题
HarmonyOS 怎么listitem侧滑按钮失效
334浏览 • 1回复 待解决
FA里内嵌H5是怎么保持登录状态?
7320浏览 • 1回复 待解决
HarmonyOS 图片按压效果实现
567浏览 • 2回复 待解决
HarmonyOS 有无带状态更改按钮控件
196浏览 • 1回复 待解决
HarmonyOS 怎么获取watch变化之前数据
270浏览 • 1回复 待解决
如何最大化按钮不可用
2597浏览 • 1回复 待解决
怎么才能让编写工具保持活跃?
1814浏览 • 1回复 待解决