HarmonyOS 是否可以给ArkUI的toggle、switch这类绑定单向的变量?

我页面上放置Toggle作为相机权限开关,如果用户点击了开关,我需要此时开关不要变成打开状态,而是先弹框问用户是否授权,如果用户在弹框中点击了确定,才将toggle开关打开。请问有没有什么办法。

@State LocationSwitch : boolean = false;  
  
Toggle({ type: ToggleType.Switch, isOn: this.LocationSwitch })  
  .onChange((isOn: boolean) => {  
    this.LocationSwitch = false // 不生效  
  })
HarmonyOS
2024-09-25 13:00:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

延迟打开toggle,参考下面使用hittestbehavior,具体逻辑请开发者自己实现。

@Entry  
@Component  
struct Index {  
  @State isDarkMode: boolean = false  
  build() {  
    Column() {  
      Column() {  
        Toggle({ type: ToggleType.Switch, isOn: $$this.isDarkMode })  
  
          .onChange((isOn: boolean) => {  
            console.info('Toggle.onChange:isOn' + isOn)  
            this.isDarkMode = isOn  
            getContext(this).getApplicationContext().setColorMode(this.isDarkMode ? 0 : 1)  
          })  
      }  
      .hitTestBehavior(HitTestMode.Block)  
      .onClick(() => {  
        setTimeout(() => {  
          this.isDarkMode = !this.isDarkMode  
        }, 10000)  
      })  
    }.width('100%').height('100%').padding(32)  
  }  
}

hitTestBehavior参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-hit-test-behavior-0000001881330797-V5?catalogVersion=V5

分享
微博
QQ
微信
回复
2024-09-25 18:02:29
相关问题
单向绑定问题,有知道方法吗?
766浏览 • 1回复 待解决
ArkTS简单类型变量双向数据绑定
1494浏览 • 1回复 待解决
HarmonyOS toggle组件是否支持完全受控
450浏览 • 0回复 待解决
【ets】switch开关打开后会自动关闭
3441浏览 • 1回复 待解决