HarmonyOS Toggle组件enable为false,组件selectedColor颜色变暗
点击Toggle组件根据接口的返回去改变Toggle的状态,封装了如下SwitchButton组件,将Toggle设置enable为false将点击事件设置在其父组件上,根据点击父组件调用接口并修改Toggle的状态,但是目前碰到一个问题,将Toggle设置enable为false后,Toggle的selectColor的颜色值会变暗和实际设置的值不一样,如何解决这个问题?
@Component
export struct SwitchButton {
  @State selectedColor: ResourceColor = $r('app.string.switch_button_selected_color')
  @State unselectedColor: ResourceColor = $r('app.string.switch_button_unselected_color')
  @State pointRadius: number | Resource = $r('app.string.switch_button_point_radius')
  @State pointColor: ResourceColor = $r('app.string.switch_button_point_color')
  @State trackBorderRadius: number | Resource = $r('app.string.switch_button_track_border_radius')
  @State sbWidth: Length = $r('app.string.switch_button_width')
  @State sbHeight: Length = $r('app.string.switch_button_height')
  @Prop isOn: boolean = false
  action?: (isOn: boolean) => void
  build() {
    Stack() {
      Toggle({ type: ToggleType.Switch, isOn: this.isOn })//TODO:设置的颜色值会变暗
        .enabled(false)
        .selectedColor(this.selectedColor)
        .switchStyle({
          pointRadius: this.pointRadius,
          trackBorderRadius: this.trackBorderRadius,
          pointColor: this.pointColor,
          unselectedColor: this.unselectedColor,
        })
        .width(this.sbWidth)
        .height(this.sbHeight)
    }
    .backgroundColor(Color.Transparent)
    .onClick(() => {
      this.action?.(this.isOn)
    })
  }
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 HarmonyOS Toggle组件设备type为Switch时,滑槽颜色无法设置 
1025浏览  • 1回复 待解决
HarmonyOS  Toggle组件关闭状态的颜色怎么设置? 
1442浏览  • 1回复 待解决
HarmonyOS button组件enabled为false时,默认样式是什么? 
1405浏览  • 1回复 待解决
HarmonyOS Toggle组件怎么拦截? 
1708浏览  • 1回复 待解决
HarmonyOS  Toggle组件onChange方法手动触发 
1525浏览  • 1回复 待解决
HarmonyOS isFullScreen获取始终为false 
1274浏览  • 1回复 待解决
HarmonyOS Toggle空间的勾颜色怎么修改? 
1353浏览  • 1回复 待解决
Toggle组件,当为ToggleType.CheckBox时,形状是圆形的,如何改为圆角矩形? 
1463浏览  • 1回复 待解决
Toggle组件为Switch样式的时候点击时 有个方形的背景如何去掉 
2249浏览  • 1回复 待解决
HarmonyOS toggle组件是否支持完全受控 
1553浏览  • 1回复 待解决
#鸿蒙通关秘籍# 如何在HarmonyOS NEXT中设置子组件enabled属性为false时避免触发父组件点击事件? 
880浏览  • 0回复 待解决
控件设置了enable=false,不想让他默认变色(似乎是透明度变了) 
1561浏览  • 1回复 待解决
HarmonyOS Toggle组件按钮手动切换后组件刷新问题 
905浏览  • 1回复 待解决
List组件divider颜色显示透List组件颜色 
1032浏览  • 1回复 待解决
控件enabled设置为false时,hover失效 
3608浏览  • 1回复 待解决
HarmonyOS TextInput设置enabled=false时,字体颜色怎么设置 
887浏览  • 1回复 待解决
Span组件禁用控制(enable)、显隐控制(visibility)属性设置无效 
2976浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何为Toggle组件添加事件? 
1113浏览  • 1回复 待解决
HarmonyOS Toggle组件如何通过事件控制开关状态 
933浏览  • 1回复 待解决
HarmonyOS Image组件如何设置填充颜色 
1388浏览  • 1回复 待解决
HarmonyOS 批量修改子组件的颜色 
852浏览  • 1回复 待解决
XComponent组件如何设置背景颜色 
3480浏览  • 1回复 待解决
HarmonyOS TextInput组件背景颜色如何跟随父组件显示 
950浏览  • 1回复 待解决
HarmonyOS 怎么关闭https校验--strict_ssl如何设置为false 
1616浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何创建不包含子组件的Toggle? 
851浏览  • 1回复 待解决





















可以通过.hitTestBehavior(this.isEnable? HitTestMode.Transparent: HitTestMode.None)来代替enable实现阻断交互,触摸测试控制参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-hit-test-behavior-V5#hittestbehavior
示例参考: