HarmonyOS 鸿蒙Next 点击一个按钮后动画效果中 确保按钮不重复点击且其他按钮不可点击

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 点击一个按钮后动画效果中 确保按钮不重复点击且其他按钮不可点击

点击一个按钮后, 有一个动画效果。 怎么确保按钮不能重复点击, 其他的按钮也不能点击

2 回复

参考下面的demo,定义一个节流函数,在一定时间后才会触发函数,为了让效果明显,以下Demo设置为5s采纳触发一次:

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
 [@State](/user/State) message: string = 'Hello World';
 private lastTime:number = 0;
 //定义一个节流函数throttle
 throttle(func: Function, interval: number) {
   const nowTime = Date.now();
   const remainTime = interval - (nowTime - this.lastTime);
   if (remainTime <= 0) {
     this.lastTime = nowTime;
     func();
   }
}

 build() {
   RelativeContainer() {
     Button(this.message)
       .onClick(()=>{
         this.throttle(()=>{
           console.log("testaaa2")
         },5000)
       })
   }
   .height('100%')
   .width('100%')
 }
}

更多关于HarmonyOS 鸿蒙Next 点击一个按钮后动画效果中 确保按钮不重复点击且其他按钮不可点击的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next系统中,确保按钮在动画效果中不重复点击且其他按钮不可点击,可以通过以下方式实现:

  1. 按钮点击状态管理

    • 为按钮添加一个点击状态标志(例如,布尔变量isClicking)。
    • 在按钮的点击事件中,首先检查isClicking状态,如果为true,则不执行任何操作并返回。
    • 点击事件开始时,将isClicking设为true,动画结束后,将isClicking设为false
  2. 禁用其他按钮

    • 在按钮点击事件中,遍历所有按钮(或特定按钮集合),将除当前按钮外的其他按钮设置为不可点击状态(setEnabled(false))。
    • 动画结束后,恢复所有按钮的可点击状态(setEnabled(true))。
  3. 动画管理

    • 使用合适的动画监听器(如AnimatorListenerAdapter),在动画结束回调中更新按钮状态。

通过上述方法,可以有效防止按钮在动画效果中被重复点击,并确保其他按钮在动画期间不可点击。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部