【鸿蒙开发】第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%')
  }
}
相关推荐
哼唧唧_19 分钟前
React Native开发鸿蒙运动健康类应用的项目实践记录
react native·harmonyos·harmony os5·运动健康
二流小码农7 小时前
鸿蒙开发:实现一个标题栏吸顶
android·ios·harmonyos
坚果的博客7 小时前
uniappx插件nutpi-idcard 开发与使用指南(适配鸿蒙)
华为·harmonyos
程序员小刘8 小时前
【HarmonyOS 5】 社交行业详解以及 开发案例
华为·harmonyos
软件测试小仙女8 小时前
鸿蒙APP测试实战:从HDC命令到专项测试
大数据·软件测试·数据库·人工智能·测试工具·华为·harmonyos
Raink老师8 小时前
鸿蒙任务项设置案例实战
harmonyos·鸿蒙·案例实战
程序员小刘8 小时前
【HarmonyOS 5】 影视与直播详以及 开发案例
华为·harmonyos
程序员小刘8 小时前
鸿蒙【HarmonyOS 5】 (React Native)的实战教程
react native·华为·harmonyos
王二蛋与他的张大花8 小时前
HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖
harmonyos
Android研究员9 小时前
华为仓颉语言初识:并发编程之同步机制(上)
harmonyos