• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 点击回弹效果
2
3设置组件点击时回弹效果。
4
5>  **说明:**
6>
7> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
8
9## clickEffect
10
11clickEffect(value: ClickEffect | null)
12
13设置当前组件点击回弹效果。
14
15**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
16
17**系统能力:** SystemCapability.ArkUI.ArkUI.Full
18
19**参数:**
20
21| 参数名 | 类型                                                  | 必填 | 说明                                                         |
22| ------ | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
23| value  | [ClickEffect](#clickeffect对象说明)&nbsp;\|&nbsp;null | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>可通过null取消点击回弹效果。<br/>不建议在组件大小动态变化的场景中使用该功能。<br/>当组件无法触发通用事件时,不支持该属性。 |
24
25## clickEffect<sup>18+</sup>
26
27clickEffect(effect: Optional\<ClickEffect | null>)
28
29设置当前组件点击回弹效果。与[clickEffect](#clickeffect)相比,effect参数新增了对undefined类型的支持。
30
31**原子化服务API:** 从API version 18开始,该接口支持在原子化服务中使用。
32
33**系统能力:** SystemCapability.ArkUI.ArkUI.Full
34
35**参数:**
36
37| 参数名 | 类型                                                         | 必填 | 说明                                                         |
38| ------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ |
39| effect | Optional\<[ClickEffect](#clickeffect对象说明)&nbsp;\|&nbsp;null> | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>可通过undefined或者null取消点击回弹效果。<br/>不建议在组件大小动态变化的场景中使用该功能。<br/>当组件无法触发通用事件时,不支持该属性。 |
40
41## ClickEffect对象说明
42
43**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。
44
45| 名称  | 参数类型                                                    | 必填 | 描述                                                         |
46| ----- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
47| level | [ClickEffectLevel](ts-appendix-enums.md#clickeffectlevel10) | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>level等于undefined或者null时, ClickEffect采用ClickEffectLevel.LIGHT对应的回弹效果,缩放比参照scale说明。 |
48| scale | number                                                      | 否   | 回弹缩放比例,支持在设置ClickEffectLevel的基础上微调回弹缩放比例。<br/>**说明:**<br/>level等于ClickEffectLevel.LIGHT时,默认值:0.90<br/>level等于ClickEffectLevel.MIDDLE或者ClickEffectLevel.HEAVY时,默认值:0.95<br/>level等于undefined或者null时,level为ClickEffectLevel.LIGHT,默认值:0.90<br/>scale等于undefined或者null时,scale与当前设置的level对应的默认缩放比相同。<br/> |
49
50## 示例
51
52该示例主要演示不同组件的点击回弹效果。
53
54```ts
55// xxx.ets
56@Entry
57@Component
58struct ToggleExample {
59  build() {
60    Column({ space: 10 }) {
61      Text('type: Switch').fontSize(12).fontColor(0xcccccc).width('90%')
62      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
63        Toggle({ type: ToggleType.Switch, isOn: false })
64          .clickEffect({level:ClickEffectLevel.LIGHT})
65          .selectedColor('#007DFF')
66          .switchPointColor('#FFFFFF')
67          .onChange((isOn: boolean) => {
68            console.info('Component status:' + isOn)
69          })
70
71        Toggle({ type: ToggleType.Switch, isOn: true })
72          .clickEffect({level:ClickEffectLevel.LIGHT, scale: 0.5})
73          .selectedColor('#007DFF')
74          .switchPointColor('#FFFFFF')
75          .onChange((isOn: boolean) => {
76            console.info('Component status:' + isOn)
77          })
78      }
79
80      Text('type: Checkbox').fontSize(12).fontColor(0xcccccc).width('90%')
81      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
82        Toggle({ type: ToggleType.Checkbox, isOn: false })
83          .clickEffect({level:ClickEffectLevel.MIDDLE})
84          .size({ width: 20, height: 20 })
85          .selectedColor('#007DFF')
86          .onChange((isOn: boolean) => {
87            console.info('Component status:' + isOn)
88          })
89
90        Toggle({ type: ToggleType.Checkbox, isOn: true })
91          .clickEffect({level:ClickEffectLevel.MIDDLE, scale: 0.5})
92          .size({ width: 20, height: 20 })
93          .selectedColor('#007DFF')
94          .onChange((isOn: boolean) => {
95            console.info('Component status:' + isOn)
96          })
97      }
98
99      Text('type: Button').fontSize(12).fontColor(0xcccccc).width('90%')
100      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
101        Toggle({ type: ToggleType.Button, isOn: false }) {
102          Text('status button').fontColor('#182431').fontSize(12)
103        }.width(106)
104        .clickEffect({level:ClickEffectLevel.HEAVY})
105        .selectedColor('rgba(0,125,255,0.20)')
106        .onChange((isOn: boolean) => {
107          console.info('Component status:' + isOn)
108        })
109
110        Toggle({ type: ToggleType.Button, isOn: true }) {
111          Text('status button').fontColor('#182431').fontSize(12)
112        }.width(106)
113        .clickEffect({level:ClickEffectLevel.HEAVY, scale: 0.5})
114        .selectedColor('rgba(0,125,255,0.20)')
115        .onChange((isOn: boolean) => {
116          console.info('Component status:' + isOn)
117        })
118      }
119    }.width('100%').padding(24)
120  }
121}
122```
123
124![clickeffect](figures/clickeffect.gif)