1e41f4b71Sopenharmony_ci# switch 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci> **说明:** 4e41f4b71Sopenharmony_ci> 从API version 4开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ci开关选择器,通过开关,开启或关闭某个功能。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci## 权限列表 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci无 11e41f4b71Sopenharmony_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 \| 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 | { checked: checkedValue } | 选中状态改变时触发该事件。 | 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 125