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