【鸿蒙开发】第14课,Toggle、SymbolGlyph组件

1 Toggle组件

在鸿蒙应用开发中,Toggle组件作为核心交互控件,广泛应用于开关设置、状态切换等场景。

typescript 复制代码
@Entry
@Component
struct ToggleDemo {
  @State toggleState: boolean = false

  build() {
    Column() {
      Toggle({ type: ToggleType.Checkbox, isOn: this.toggleState })
        .onChange((isOn) => {
          this.toggleState = isOn
        })
        .margin(10)

      Toggle({ type: ToggleType.Switch, isOn: this.toggleState })
        .onChange((isOn) => {
          this.toggleState = isOn
        })
        .margin(10)

      Toggle({ type: ToggleType.Switch, isOn: this.toggleState })
        .onChange((isOn) => {
          this.toggleState = isOn
        })
        .switchPointColor(Color.Green)
        .selectedColor(Color.Yellow)
        .margin(10)

      Toggle({ type: ToggleType.Button, isOn: this.toggleState })
        .onChange((isOn) => {
          this.toggleState = isOn
        })
        .size({ width: 40, height: 40 })
        .selectedColor(Color.Red)
        .backgroundColor(Color.Orange)
        .margin(10)

      Text(`当前状态:${this.toggleState ? '开启' : '关闭'}`)
    }.width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

2 SymbolGlyph

SymbolGlyph组件是显示图标小符号的组件。

typescript 复制代码
// 声明组件入口和组件类型
@Entry
@Component
struct SymbolGlyphDemo {
  // 组件构建方法,定义UI结构
  build() {
    // 创建垂直布局容器,设置宽高为100%
    Column() {
      // 添加系统WiFi图标,设置字体大小为30
      SymbolGlyph($r('sys.symbol.ohos_wifi')).fontSize(30)

      // 添加带加号文件夹图标,设置:
      // - 字体大小70
      // - 多色渲染策略
      // - 三种颜色渐变(绿、红、橙)
      SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
        .fontSize(70)
        .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_COLOR)
        .fontColor([Color.Green, Color.Red, Color.Orange])

      // 添加相同文件夹图标,设置:
      // - 字体大小70
      // - 多透明度渲染策略
      // - 三种颜色透明度渐变
      SymbolGlyph($r('sys.symbol.ohos_folder_badge_plus'))
        .fontSize(70)
        .renderingStrategy(SymbolRenderingStrategy.MULTIPLE_OPACITY)
        .fontColor([Color.Green, Color.Red, Color.Orange])

      // 添加WiFi图标,设置:
      // - 特效策略1(可能是渐变/动态效果)
      // - 超大字体97
      SymbolGlyph($r('sys.symbol.ohos_wifi')).effectStrategy(1).fontSize(97)

      // 添加WiFi图标,设置:
      // - 特效策略2(可能是另一种动态效果)
      // - 超大字体97
      SymbolGlyph($r('sys.symbol.ohos_wifi')).effectStrategy(2).fontSize(97)
    }
    // 设置容器宽度为100%
    .width('100%')
    // 设置容器高度为100%
    .height('100%')
  }
}
相关推荐
祥睿夫子1 小时前
鸿蒙 ArkTS 函数全解析:从基础定义到高级应用,新手也能轻松掌握
harmonyos
江拥羡橙3 小时前
【目录-多选】鸿蒙HarmonyOS开发者基础
前端·ui·华为·typescript·harmonyos
爱笑的眼睛1110 小时前
HarmonyOS Stage 模型深度解析:构建现代化、高性能应用
华为·harmonyos
安卓开发者13 小时前
鸿蒙NEXT自定义能力详解:从基础使用到高级技巧
华为·harmonyos
特立独行的猫a15 小时前
HarmonyOS 鸿蒙系统自带的 SymbolGlyph 图标组件详解
华为·harmonyos·图标·symbolglyph
2501_9197490315 小时前
鸿蒙:使用EventHub实现多模块之间的通信
华为·harmonyos
2501_9197490321 小时前
鸿蒙:使用Emitter进行线程间通信
华为·harmonyos
SuperHeroWu71 天前
【HarmonyOS 6】仿AI唤起屏幕边缘流光特效
华为·harmonyos·特效·鸿蒙6.0·流光·ai唤起·屏幕边缘
gcios1 天前
鸿蒙-flutter 混合开发
harmonyos
特立独行的猫a1 天前
HarmonyOS应用开发之界面列表不刷新问题Bug排查记:从现象到解决完整记录
华为·bug·harmonyos·ui刷新