• 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**系统能力:** SystemCapability.ArkUI.ArkUI.Full
16
17**参数:**
18
19| 参数名 | 类型                                                  | 必填 | 说明                                                         |
20| ------ | ----------------------------------------------------- | ---- | ------------------------------------------------------------ |
21| value  | [ClickEffect](#clickeffect对象说明)&nbsp;\|&nbsp;null | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>可通过undefined或者null取消点击回弹效果。<br/>不建议在组件大小动态变化的场景中使用该功能。<br/>当组件无法触发通用事件时,不支持该属性。 |
22
23## ClickEffect对象说明
24
25| 名称  | 参数类型                                                    | 必填 | 描述                                                         |
26| ----- | ----------------------------------------------------------- | ---- | ------------------------------------------------------------ |
27| level | [ClickEffectLevel](ts-appendix-enums.md#clickeffectlevel10) | 是   | 设置当前组件点击回弹效果。<br/>**说明:**<br/>level等于undefined或者null时, ClickEffect采用ClickEffectLevel.LIGHT对应的回弹效果, 缩放比参照scale说明。 |
28| 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/> |
29
30## 示例
31
32```ts
33// xxx.ets
34@Entry
35@Component
36struct ToggleExample {
37  build() {
38    Column({ space: 10 }) {
39      Text('type: Switch').fontSize(12).fontColor(0xcccccc).width('90%')
40      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
41        Toggle({ type: ToggleType.Switch, isOn: false })
42          .clickEffect({level:ClickEffectLevel.LIGHT})
43          .selectedColor('#007DFF')
44          .switchPointColor('#FFFFFF')
45          .onChange((isOn: boolean) => {
46            console.info('Component status:' + isOn)
47          })
48
49        Toggle({ type: ToggleType.Switch, isOn: true })
50          .clickEffect({level:ClickEffectLevel.LIGHT, scale: 0.5})
51          .selectedColor('#007DFF')
52          .switchPointColor('#FFFFFF')
53          .onChange((isOn: boolean) => {
54            console.info('Component status:' + isOn)
55          })
56      }
57
58      Text('type: Checkbox').fontSize(12).fontColor(0xcccccc).width('90%')
59      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
60        Toggle({ type: ToggleType.Checkbox, isOn: false })
61          .clickEffect({level:ClickEffectLevel.MIDDLE})
62          .size({ width: 20, height: 20 })
63          .selectedColor('#007DFF')
64          .onChange((isOn: boolean) => {
65            console.info('Component status:' + isOn)
66          })
67
68        Toggle({ type: ToggleType.Checkbox, isOn: true })
69          .clickEffect({level:ClickEffectLevel.MIDDLE, scale: 0.5})
70          .size({ width: 20, height: 20 })
71          .selectedColor('#007DFF')
72          .onChange((isOn: boolean) => {
73            console.info('Component status:' + isOn)
74          })
75      }
76
77      Text('type: Button').fontSize(12).fontColor(0xcccccc).width('90%')
78      Flex({ justifyContent: FlexAlign.SpaceEvenly, alignItems: ItemAlign.Center }) {
79        Toggle({ type: ToggleType.Button, isOn: false }) {
80          Text('status button').fontColor('#182431').fontSize(12)
81        }.width(106)
82        .clickEffect({level:ClickEffectLevel.HEAVY})
83        .selectedColor('rgba(0,125,255,0.20)')
84        .onChange((isOn: boolean) => {
85          console.info('Component status:' + isOn)
86        })
87
88        Toggle({ type: ToggleType.Button, isOn: true }) {
89          Text('status button').fontColor('#182431').fontSize(12)
90        }.width(106)
91        .clickEffect({level:ClickEffectLevel.HEAVY, scale: 0.5})
92        .selectedColor('rgba(0,125,255,0.20)')
93        .onChange((isOn: boolean) => {
94          console.info('Component status:' + isOn)
95        })
96      }
97    }.width('100%').padding(24)
98  }
99}
100```
101
102![clickeffect](figures/clickeffect.gif)