HarmonyOS Toggle开关状态控制

Toggle开关能不改变开关状态只响应事件,等事件响应结束后再改变状态?Toggle开关开启和关闭时的UI是不一样的,开启的时候直接开启,关闭的时候先弹框提示,点击确定后关闭开关同时刷新UI,点击取消的时候保持状态不变。目前遇到的问题是点击关闭的时候弹框,此时UI刷新了。点击取消后开关回到开启状态,UI又刷新了一遍。

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

不可以,Toggle组件触发onChange事件是开关状态切换时触发该事件,所以状态是先改变的,参考示例如下:

@Entry
@Component
struct ToggleExample {
  @State isOn: boolean = false
  build() {
    Column({ space: 10 }) {
      Toggle({ type: ToggleType.Switch, isOn: $$this.isOn })
        .onChange((isOn: boolean) => {
          console.log(`Toggle is ${this.isOn ? 'ON' : 'OFF'})`)
          if (this.isOn === true) {
            this.isOn = isOn
            return;
          }

          AlertDialog.show(
            {
              title: 'title',
              subtitle: 'subtitle',
              message: 'text',
              autoCancel: true,
              alignment: DialogAlignment.Center,
              gridCount: 4,
              showInSubWindow: true,
              isModal: true,
              offset: { dx: 0, dy: -20 },
              buttonDirection: DialogButtonDirection.HORIZONTAL,
              buttons: [
                {
                  value: '取消',
                  action: () => {
                    this.isOn = true
                    console.info('取消关闭Toggle')
                  }
                },
                {
                  value: '确定',
                  action: () => {
                    this.isOn = isOn
                    console.info('确定关闭Toggle')
                  }
                }
              ],
              cancel: () => {
                this.isOn = true
                console.info('Closed callbacks')
              }
            })
        })
    }.width('100%')
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS Toggle是否有异步控制功能
33浏览 • 1回复 待解决
HarmonyOS 如何单独控制闪光灯开关
27浏览 • 1回复 待解决
HarmonyOS 如何获取手机GPS开关状态
35浏览 • 1回复 待解决
是否有闪光灯开关控制能力?
1746浏览 • 1回复 待解决
HarmonyOS 如何控制状态
32浏览 • 1回复 待解决
HarmonyOS RichEditor如何控制输入状态
57浏览 • 1回复 待解决
HarmonyOS Toggle问题
534浏览 • 0回复 待解决
HarmonyOS Toggle 问题
11浏览 • 1回复 待解决
鸿蒙java中有没有控制4G/5G开关的接口
5160浏览 • 1回复 待解决
HarmonyOS toggle 点击拦截
85浏览 • 1回复 待解决