1e41f4b71Sopenharmony_ci# switch
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci>  **说明:**
4e41f4b71Sopenharmony_ci>  从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci开关选择器,通过开关,开启或关闭某个功能。
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci## 权限列表
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci## 子组件
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci不支持。
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci## 属性
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci除支持[通用属性](js-components-common-attributes.md)外,还支持如下属性:
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci| 名称       | 类型      | 默认值   | 必填   | 描述         |
23e41f4b71Sopenharmony_ci| -------- | ------- | ----- | ---- | ---------- |
24e41f4b71Sopenharmony_ci| checked  | boolean | false | 否    | 是否选中。      |
25e41f4b71Sopenharmony_ci| showtext | boolean | false | 否    | 是否显示文本。    |
26e41f4b71Sopenharmony_ci| texton   | string  | "On"  | 否    | 选中时显示的文本。  |
27e41f4b71Sopenharmony_ci| textoff  | string  | "Off" | 否    | 未选中时显示的文本。 |
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci## 样式
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci除支持[通用样式](js-components-common-styles.md)外,还支持如下样式:
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_ci| 名称            | 类型                         | 默认值        | 必填   | 描述                                       |
37e41f4b71Sopenharmony_ci| ------------- | -------------------------- | ---------- | ---- | ---------------------------------------- |
38e41f4b71Sopenharmony_ci| texton-color  | <color>              | \#000000   | 否    | 选中时显示的文本颜色,仅设置texton和textoff生效。          |
39e41f4b71Sopenharmony_ci| textoff-color | <color>              | \#000000   | 否    | 未选中时显示的文本颜色,仅设置texton和textoff生效。         |
40e41f4b71Sopenharmony_ci| text-padding  | number                     | 0px        | 否    | texton/textoff中最长文本两侧距离滑块边界的距离。          |
41e41f4b71Sopenharmony_ci| font-size     | <length>             | -          | 否    | 文本尺寸,仅设置texton和textoff生效。                |
42e41f4b71Sopenharmony_ci| allow-scale   | boolean                    | true       | 否    | 文本尺寸是否跟随系统设置字体缩放尺寸进行放大缩小。<br/>如果在config描述文件中针对ability配置了fontSize的config-changes标签,则应用不会重启而直接生效。 |
43e41f4b71Sopenharmony_ci| font-style    | string                     | normal     | 否    | 字体样式,仅设置texton和textoff生效。见text组件[font-style的样式属性](js-components-basic-text.md#样式)。 |
44e41f4b71Sopenharmony_ci| font-weight   | number&nbsp;\|&nbsp;string | normal     | 否    | 字体粗细,仅设置texton和textoff生效。见text组件的[font-weight的样式属性](js-components-basic-text.md#样式)。 |
45e41f4b71Sopenharmony_ci| font-family   | string                     | sans-serif | 否    | 字体列表,用逗号分隔,每个字体用字体名或者字体族名设置。列表中第一个系统中存在的或者通过[自定义字体](js-components-common-customizing-font.md)指定的字体,会被选中作为文本的字体。仅设置texton和textoff生效。 |
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci## 事件
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci除支持[通用事件](js-components-common-events.md)外,还支持如下事件:
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci| 名称     | 参数                                       | 描述            |
53e41f4b71Sopenharmony_ci| ------ | ---------------------------------------- | ------------- |
54e41f4b71Sopenharmony_ci| change | {&nbsp;checked:&nbsp;checkedValue&nbsp;} | 选中状态改变时触发该事件。 |
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ci## 方法
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci支持[通用方法](js-components-common-methods.md)。
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci## 示例
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci```html
63e41f4b71Sopenharmony_ci<!-- xxx.hml -->
64e41f4b71Sopenharmony_ci<div class="container">
65e41f4b71Sopenharmony_ci    <switch @change="normalswitchChange">
66e41f4b71Sopenharmony_ci    </switch>
67e41f4b71Sopenharmony_ci    <switch class="switch" showtext="true" texton="开启" textoff="关闭" @change="switchChange">
68e41f4b71Sopenharmony_ci    </switch>
69e41f4b71Sopenharmony_ci    <switch class="switch text" showtext="true" texton="开启" textoff="关闭" checked="true" @change="switchChange">
70e41f4b71Sopenharmony_ci    </switch>
71e41f4b71Sopenharmony_ci</div>
72e41f4b71Sopenharmony_ci```
73e41f4b71Sopenharmony_ci
74e41f4b71Sopenharmony_ci```css
75e41f4b71Sopenharmony_ci/* xxx.css */
76e41f4b71Sopenharmony_ci.container {
77e41f4b71Sopenharmony_ci    display: flex;
78e41f4b71Sopenharmony_ci    justify-content: center;
79e41f4b71Sopenharmony_ci    align-items: center;
80e41f4b71Sopenharmony_ci}
81e41f4b71Sopenharmony_ci.switch {
82e41f4b71Sopenharmony_ci    texton-color: red;
83e41f4b71Sopenharmony_ci    textoff-color: forestgreen;
84e41f4b71Sopenharmony_ci}
85e41f4b71Sopenharmony_ci.text {
86e41f4b71Sopenharmony_ci    text-padding: 20px;
87e41f4b71Sopenharmony_ci    font-size: 30px;
88e41f4b71Sopenharmony_ci    font-weight: 700;
89e41f4b71Sopenharmony_ci}
90e41f4b71Sopenharmony_ci```
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_ci```js
93e41f4b71Sopenharmony_ci// xxx.js
94e41f4b71Sopenharmony_ciimport promptAction from '@ohos.promptAction';
95e41f4b71Sopenharmony_ciexport default {
96e41f4b71Sopenharmony_ci    data: {
97e41f4b71Sopenharmony_ci        title: 'World'
98e41f4b71Sopenharmony_ci    },
99e41f4b71Sopenharmony_ci    switchChange(e) {
100e41f4b71Sopenharmony_ci        if (e.checked) {
101e41f4b71Sopenharmony_ci            promptAction.showToast({
102e41f4b71Sopenharmony_ci                message: "打开开关"
103e41f4b71Sopenharmony_ci            });
104e41f4b71Sopenharmony_ci        } else {
105e41f4b71Sopenharmony_ci            promptAction.showToast({
106e41f4b71Sopenharmony_ci                message: "关闭开关"
107e41f4b71Sopenharmony_ci            });
108e41f4b71Sopenharmony_ci        }
109e41f4b71Sopenharmony_ci    },
110e41f4b71Sopenharmony_ci    normalswitchChange(e) {
111e41f4b71Sopenharmony_ci        if (e.checked) {
112e41f4b71Sopenharmony_ci            promptAction.showToast({
113e41f4b71Sopenharmony_ci                message: "switch on"
114e41f4b71Sopenharmony_ci            });
115e41f4b71Sopenharmony_ci        } else {
116e41f4b71Sopenharmony_ci            promptAction.showToast({
117e41f4b71Sopenharmony_ci                message: "switch off"
118e41f4b71Sopenharmony_ci            });
119e41f4b71Sopenharmony_ci        }
120e41f4b71Sopenharmony_ci    }
121e41f4b71Sopenharmony_ci}
122e41f4b71Sopenharmony_ci```
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci![zh-cn_image_0000001152862510](figures/switch.gif)
125