ts-basic-components-toggle.md 4.5 KB
Newer Older
Z
zengyawen 已提交
1
# Toggle
Z
zengyawen 已提交
2

T
explain  
tianyu 已提交
3 4
组件提供勾选框样式、状态按钮样式及开关样式。

H
geshi  
HelloCrease 已提交
5
>  **说明:**
H
hebingxue 已提交
6
>
Z
zengyawen 已提交
7
> 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
8

Z
zengyawen 已提交
9

Z
zengyawen 已提交
10 11


Z
zengyawen 已提交
12 13

## 子组件
Z
zengyawen 已提交
14

K
kangchongtao 已提交
15
仅当ToggleType为Button时可包含子组件。
Z
zengyawen 已提交
16

Z
zengyawen 已提交
17 18 19 20 21

## 接口

Toggle(options: { type: ToggleType, isOn?: boolean })

L
lanyill 已提交
22 23
从API version 9开始,该接口支持在ArkTS卡片中使用。

H
hebingxue 已提交
24
**参数:**
Z
zengyawen 已提交
25

H
hebingxue 已提交
26 27
| 参数名 | 参数类型 | 必填   | 参数描述           |
| ---- | ---------- | -----| -------------- |
M
match 已提交
28
| type | [ToggleType](#toggletype枚举说明) | 是   | 开关类型。 |
H
hebingxue 已提交
29
| isOn | boolean    | 否   | 开关是否打开,true:打开,false:关闭。<br/>默认值:false |
Z
zengyawen 已提交
30

H
hebingxue 已提交
31 32

## ToggleType枚举说明
L
lanyill 已提交
33 34 35

从API version 9开始,该接口支持在ArkTS卡片中使用。

H
hebingxue 已提交
36 37
| 名称       | 描述                 |
| -------- | ---------------- |
Y
yamila 已提交
38
| Checkbox | 提供单选框样式。<br>**说明:**<br/>[通用属性margin](ts-universal-attributes-size.md)的默认值为:<br>{<br>&nbsp;top: 12 vp,<br>&nbsp;right: 12 vp,<br>&nbsp;bottom: 12 vp,<br>&nbsp;left: 12 vp<br> } |
H
hebingxue 已提交
39
| Button   | 提供状态按钮样式,如果子组件有文本设置,则相应的文本内容会显示在按钮内部。       |
Y
yamila 已提交
40
| Switch   | 提供开关样式。<br>**说明:**<br/>[通用属性margin](ts-universal-attributes-size.md)默认值为:<br>{<br/>&nbsp;top: 14 vp,<br/>&nbsp;right:6 vp,<br/>&nbsp;bottom: 6 vp,<br/>&nbsp;left: 14 vp<br/> } |
Z
zengyawen 已提交
41 42 43 44


## 属性

H
hebingxue 已提交
45 46
| 名称                | 参数                           | 参数描述                  |
| ---------------- | --------------------------- | ---------------------- |
L
lanyill 已提交
47 48
| selectedColor    | [ResourceColor](ts-types.md#resourcecolor)  | 设置组件打开状态的背景颜色。 <br/>从API version 9开始,该接口支持在ArkTS卡片中使用。|
| switchPointColor | [ResourceColor](ts-types.md#resourcecolor)  | 设置Switch类型的圆形滑块颜色。<br/>**说明:**<br/>仅对type为ToggleType.Switch生效。<br/>从API version 9开始,该接口支持在ArkTS卡片中使用。 |
Z
zengyawen 已提交
49 50 51 52


## 事件

T
tianyu 已提交
53
| 名称 | 功能描述 |
54
| -------- | -------- |
L
lanyill 已提交
55
| onChange(callback:&nbsp;(isOn:&nbsp;boolean)&nbsp;=&gt;&nbsp;void) | 开关状态切换时触发该事件。 <br/>从API version 9开始,该接口支持在ArkTS卡片中使用。|
Z
zengyawen 已提交
56 57 58


## 示例
Z
zengyawen 已提交
59

H
geshi  
HelloCrease 已提交
60 61
```ts
// xxx.ets
Z
zengyawen 已提交
62 63 64 65 66 67 68
@Entry
@Component
struct ToggleExample {
  build() {
    Column({ space: 10 }) {
      Text('type: Switch').fontSize(12).fontColor(0xcccccc).width('90%')
      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
T
tianyu 已提交
69
        Toggle({ type: ToggleType.Switch, isOn: false })
L
luoying_ace_admin 已提交
70 71
          .selectedColor('#007DFF')
          .switchPointColor('#FFFFFF')
Z
zengyawen 已提交
72 73 74 75
          .onChange((isOn: boolean) => {
            console.info('Component status:' + isOn)
          })

T
tianyu 已提交
76
        Toggle({ type: ToggleType.Switch, isOn: true })
L
luoying_ace_admin 已提交
77 78
          .selectedColor('#007DFF')
          .switchPointColor('#FFFFFF')
Z
zengyawen 已提交
79 80 81 82 83 84 85 86
          .onChange((isOn: boolean) => {
            console.info('Component status:' + isOn)
          })
      }

      Text('type: Checkbox').fontSize(12).fontColor(0xcccccc).width('90%')
      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
        Toggle({ type: ToggleType.Checkbox, isOn: false })
L
luoying_ace_admin 已提交
87 88
          .size({ width: 20, height: 20 })
          .selectedColor('#007DFF')
Z
zengyawen 已提交
89 90 91 92 93
          .onChange((isOn: boolean) => {
            console.info('Component status:' + isOn)
          })

        Toggle({ type: ToggleType.Checkbox, isOn: true })
L
luoying_ace_admin 已提交
94 95
          .size({ width: 20, height: 20 })
          .selectedColor('#007DFF')
Z
zengyawen 已提交
96 97 98 99 100 101 102 103
          .onChange((isOn: boolean) => {
            console.info('Component status:' + isOn)
          })
      }

      Text('type: Button').fontSize(12).fontColor(0xcccccc).width('90%')
      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
        Toggle({ type: ToggleType.Button, isOn: false }) {
L
luoying_ace_admin 已提交
104 105 106
          Text('status button').fontColor('#182431').fontSize(12)
        }.width(106)
        .selectedColor('rgba(0,125,255,0.20)')
Z
zengyawen 已提交
107 108 109 110 111
        .onChange((isOn: boolean) => {
          console.info('Component status:' + isOn)
        })

        Toggle({ type: ToggleType.Button, isOn: true }) {
L
luoying_ace_admin 已提交
112 113 114
          Text('status button').fontColor('#182431').fontSize(12)
        }.width(106)
        .selectedColor('rgba(0,125,255,0.20)')
Z
zengyawen 已提交
115 116 117 118 119 120 121 122 123
        .onChange((isOn: boolean) => {
          console.info('Component status:' + isOn)
        })
      }
    }.width('100%').padding(24)
  }
}
```

Y
yamila 已提交
124
![toggle](figures/toggle.gif)