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