1# 切换按钮(Toggle) 2 3 4Toggle组件提供状态按钮样式、勾选框样式和开关样式,一般用于两种状态之间的切换。具体用法请参考[Toggle](../reference/arkui-ts/ts-basic-components-toggle.md)。 5 6 7## 创建切换按钮 8 9Toggle通过调用接口来创建,接口调用形式如下: 10 11```ts 12Toggle(options: { type: ToggleType, isOn?: boolean }) 13``` 14 15 16其中,ToggleType为开关类型,包括Button、Checkbox和Switch,isOn为切换按钮的状态。接口调用有以下两种形式: 17 18 19- 创建不包含子组件的Toggle。 20 当ToggleType为Checkbox或者Switch时,用于创建不包含子组件的Toggle: 21 22 23 ```ts 24 Toggle({ type: ToggleType.Checkbox, isOn: false }) 25 Toggle({ type: ToggleType.Checkbox, isOn: true }) 26 ``` 27 28  29 30 ```ts 31 Toggle({ type: ToggleType.Switch, isOn: false }) 32 Toggle({ type: ToggleType.Switch, isOn: true }) 33 ``` 34 35  36 37- 创建包含子组件的Toggle。 38 当ToggleType为Button时,只能包含一个子组件,如果子组件有文本设置,则相应的文本内容会显示在按钮上。 39 40 ```ts 41 Toggle({ type: ToggleType.Button, isOn: false }) { 42 Text('status button') 43 .fontColor('#182431') 44 .fontSize(12) 45 }.width(100) 46 Toggle({ type: ToggleType.Button, isOn: true }) { 47 Text('status button') 48 .fontColor('#182431') 49 .fontSize(12) 50 }.width(100) 51 ``` 52 53  54 55 56## 自定义样式 57 58- 通过selectedColor属性设置Toggle打开选中后的背景颜色。 59 60 ```ts 61 Toggle({ type: ToggleType.Button, isOn: true }) { 62 Text('status button') 63 .fontColor('#182431') 64 .fontSize(12) 65 }.width(100).selectedColor(Color.Pink) 66 Toggle({ type: ToggleType.Checkbox, isOn: true }) 67 .selectedColor(Color.Pink) 68 Toggle({ type: ToggleType.Switch, isOn: true }) 69 .selectedColor(Color.Pink) 70 ``` 71 72  73 74- 通过switchPointColor属性设置Switch类型的圆形滑块颜色,仅对type为ToggleType.Switch生效。 75 76 ```ts 77 Toggle({ type: ToggleType.Switch, isOn: false }) 78 .switchPointColor(Color.Pink) 79 Toggle({ type: ToggleType.Switch, isOn: true }) 80 .switchPointColor(Color.Pink) 81 ``` 82 83  84 85 86## 添加事件 87 88除支持[通用事件](../reference/arkui-ts/ts-universal-events-click.md)外,Toggle还用于选中和取消选中后触发某些操作,可以绑定onChange事件来响应操作后的自定义行为。 89 90 91```ts 92Toggle({ type: ToggleType.Switch, isOn: false }) 93 .onChange((isOn: boolean) => { 94 if(isOn) { 95 // 需要执行的操作 96 } 97 }) 98``` 99 100 101## 场景示例 102 103Toggle用于切换蓝牙开关状态。 104 105```ts 106// xxx.ets 107import promptAction from '@ohos.promptAction'; 108@Entry 109@Component 110struct ToggleExample { 111 @State BOnSt:promptAction.ShowToastOptions = {'message': 'Bluetooth is on.'} 112 @State BOffSt:promptAction.ShowToastOptions = {'message': 'Bluetooth is off.'} 113 build() { 114 Column() { 115 Row() { 116 Text("Bluetooth Mode") 117 .height(50) 118 .fontSize(16) 119 } 120 Row() { 121 Text("Bluetooth") 122 .height(50) 123 .padding({left: 10}) 124 .fontSize(16) 125 .textAlign(TextAlign.Start) 126 .backgroundColor(0xFFFFFF) 127 Toggle({ type: ToggleType.Switch }) 128 .margin({left: 200, right: 10}) 129 .onChange((isOn: boolean) => { 130 if(isOn) { 131 promptAction.showToast(this.BOnSt) 132 } else { 133 promptAction.showToast(this.BOffSt) 134 } 135 }) 136 } 137 .backgroundColor(0xFFFFFF) 138 } 139 .padding(10) 140 .backgroundColor(0xDCDCDC) 141 .width('100%') 142 .height('100%') 143 } 144} 145``` 146 147 148 149