ArkUI---常用组件---切换按钮 (Toggle)

### 文章目录

  • [@[toc]](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [创建切换按钮](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [创建不包含子组件的Toggle](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [1.当ToggleType为`Checkbox`](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [2.当ToggleType为`Switch`](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [创建包含子组件的Toggle。](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [3.当ToggleType为`Button`时](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [自定义样式](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [1.通过`selectedColor`属性设置Toggle打开选中后的背景颜色。](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.`Switch`生效。](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [2.添加事件](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [场景示例:Toggle用于切换蓝牙开关状态。](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)
  • [完整代码:](#文章目录 @[toc] 创建切换按钮 创建不包含子组件的Toggle 1.当ToggleType为Checkbox 2.当ToggleType为Switch 创建包含子组件的Toggle。 3.当ToggleType为Button时 自定义样式 1.通过selectedColor属性设置Toggle打开选中后的背景颜色。 2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。 2.添加事件 场景示例:Toggle用于切换蓝牙开关状态。 完整代码:)

Toggle组件提供状态按钮样式、勾选框样式和开关样式,一般用于两种状态之间的切换。

创建切换按钮

Toggle通过调用接口来创建,接口调用形式如下:

Toggle(options: { type: ToggleType, isOn?: boolean })
ToggleType为开关类型,包括Button、CheckboxSwitch
isOn: 为切换按钮的状态。

API version 11开始,Checkbox默认样式由圆角方形变为*圆形*

创建不包含子组件的Toggle

当ToggleType为Checkbox或者Switch时,用于创建不包含子组件的Toggle:

1.当ToggleType为Checkbox

typescript 复制代码
	Row(){
      Toggle({type:ToggleType.Checkbox,isOn:false})
      Toggle({type:ToggleType.Checkbox,isOn:true})
    }

2.当ToggleType为Switch

typescript 复制代码
	Row(){
       Toggle({type:ToggleType.Switch,isOn:false})
       Toggle({type:ToggleType.Switch,isOn:true})
     }

创建包含子组件的Toggle。

当ToggleType为Button时,只能包含一个子组件,如果子组件有文本设置,则相应的文本内容会显示在按钮上。

3.当ToggleType为Button

typescript 复制代码
Row({space:10}){
    Toggle({type:ToggleType.Button, isOn:false}){
      Text('Status button')
        .fontSize(12)
    }

     Toggle({type:ToggleType.Button, isOn:true}){
      Text('Status button')
       .fontSize(12)
    }
   }

自定义样式

1.通过selectedColor属性设置Toggle打开选中后的背景颜色。

typescript 复制代码
Row(){
      //Button
       Toggle({ type: ToggleType.Button, isOn: true }) {
         Text('status button')
           .fontSize(12)
       }.width(100)
       .selectedColor(Color.Pink)
       //Checkbox
       Toggle({ type: ToggleType.Checkbox, isOn: true })
         .selectedColor(Color.Pink)
       //Switch
       Toggle({ type: ToggleType.Switch, isOn: true })
         .selectedColor(Color.Pink)
     }

2、通过SwitchPointColor属性设置Switch类型的圆形滑块颜色,仅对ToggleType.Switch生效。

typescript 复制代码
Row(){
       Toggle({ type: ToggleType.Switch, isOn: false })
         .selectedColor(Color.Pink)
       Toggle({ type: ToggleType.Switch, isOn: true })
         .selectedColor(Color.Pink)
     }

2.添加事件

除支持通用事件外,Toggle还用于选中和取消选中后触发某些操作,可以绑定onChange事件来响应操作后的自定义行为。

typescript 复制代码
Toggle({ type: ToggleType.Switch, isOn: false })
  .onChange((isOn: boolean) => {
      if(isOn) {
        // 需要执行的操作
      }
  })

场景示例:Toggle用于切换蓝牙开关状态。


完整代码:

typescript 复制代码
import { promptAction, PromptAction } from '@kit.ArkUI'

@Entry
@Component
struct Index01 {
  build() {
    Column(){
      Row(){
        Text('蓝牙模式!')
      }.padding(20)
      Row(){
        Text('蓝牙')
        Toggle({type:ToggleType.Switch,isOn:true})
          .onChange((isOn:boolean)=>{
            if (isOn) {
              promptAction.showToast({
                message: '蓝牙已打开!',
                duration:3000
              })
            }else {
              promptAction.showToast({
                message: '蓝牙已关闭!',
                duration:3000
              })
            }

          })
      }.height(40).width('80%').backgroundColor(Color.White).padding(10)
      .justifyContent(FlexAlign.SpaceBetween)
    }.width('100%').height('100%').backgroundColor(Color.Gray)
  }
}

完整代码:

typescript 复制代码
@Entry
@Component
struct Demo1 {
  build() {
   Column(){

    Row(){
      Toggle({type:ToggleType.Checkbox,isOn:false})
      Toggle({type:ToggleType.Checkbox,isOn:true})
    }

     Row(){
       Toggle({type:ToggleType.Switch,isOn:false})
       Toggle({type:ToggleType.Switch,isOn:true})
     }

     Row({space:10}){
      Toggle({type:ToggleType.Button, isOn:false}){
        Text('Status button')
          .fontSize(12)
      }

       Toggle({type:ToggleType.Button, isOn:true}){
        Text('Status button')
         .fontSize(12)
      }
     }

     Row(){
      //Button
       Toggle({ type: ToggleType.Button, isOn: true }) {
         Text('status button')
           .fontSize(12)
       }.width(100)
       .selectedColor(Color.Pink)
       //Checkbox
       Toggle({ type: ToggleType.Checkbox, isOn: true })
         .selectedColor(Color.Pink)
       //Switch
       Toggle({ type: ToggleType.Switch, isOn: true })
         .selectedColor(Color.Pink)
     }

     Row(){
       Toggle({ type: ToggleType.Switch, isOn: false })
         .selectedColor(Color.Pink)
       Toggle({ type: ToggleType.Switch, isOn: true })
         .selectedColor(Color.Pink)
     }

     //Toggle形态1:双态按钮
     Toggle({ type: ToggleType.Button, isOn: true }) {
       Text('开启')
     }.selectedColor(Color.Green)
     .onChange((isOn) => {
       console.log('双态按钮被改变:', isOn)  //打印为true
     })

     //形态2:复选框
     Toggle({ type: ToggleType.Checkbox })
     Text('记住登入信息')

     // 形态3:开关
     Toggle({type:ToggleType.Switch})
   }

  }
}
相关推荐
互联网散修12 小时前
零基础鸿蒙应用开发第十九节:解锁灵活数据存储新技能Map/Set
harmonyos
枫叶丹413 小时前
【HarmonyOS 6.0】ArkData 应用间配置共享:构建跨应用协作新范式
开发语言·华为·harmonyos
互联网散修13 小时前
零基础鸿蒙应用开发第十八节:内置泛型工具类型应用
harmonyos
轻口味14 小时前
HarmonyOS 6 自定义人脸识别模型8:MindSpore Lite框架介绍与使用
c++·华为·ai·harmonyos
枫叶丹414 小时前
【HarmonyOS 6.0】ArkData 分布式数据对象新特性:资产传输进度监听与接续传输能力深度解析
开发语言·分布式·华为·wpf·harmonyos
枫叶丹414 小时前
【HarmonyOS 6.0】Agent Framework Kit深度解析:构建应用与智能体的无缝连接
华为·aigc·harmonyos
亚历克斯神1 天前
Flutter for OpenHarmony: Flutter 三方库 mutex 为鸿蒙异步任务提供可靠的临界资源互斥锁(并发安全基石)
android·数据库·安全·flutter·华为·harmonyos
钛态1 天前
Flutter 三方库 smartstruct 鸿蒙化字段映射适配指南:介入静态预编译引擎扫除视图及数据模型双向强转类型错乱隐患,筑稳如磐石的企业级模型治理防线-适配鸿蒙 HarmonyOS ohos
flutter·华为·harmonyos
键盘鼓手苏苏1 天前
Flutter 组件 csv2json 适配鸿蒙 HarmonyOS 实战:高性能异构数据转换,构建 CSV 流式解析与全栈式数据映射架构
flutter·harmonyos·鸿蒙·openharmony
雷帝木木1 天前
Flutter 三方库 hrk_logging 的鸿蒙化适配指南 - 实现标准化分层日志记录、支持多目的地输出与日志分级过滤
flutter·harmonyos·鸿蒙·openharmony·hrk_logging