ArkUI的装饰器指南文档示例
介绍
本示例通过使用ArkUI指南文档中各场景的开发示例,展示在工程中,帮助开发者更好地理解ArkUI提供的组件及组件属性并合理使用。该工程中展示的代码详细描述可查如下链接:
效果预览
| 折线的动画效果 | 改变Text组件宽度实现逐帧布局效果 | @Styles和全局@Styles的用法效果展示 | @Styles里通过事件来改变状态变量的值效果 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
使用说明
-
在主界面,可以点击对应页面,选择需要参考的组件示例。
-
在组件目录选择详细的示例参考。
-
进入示例界面,查看参考示例。
-
通过自动测试框架可进行测试及维护。
工程目录
entry/src/main/ets/
├── common
│ └── resource.ets
├── entryability
│ └── EntryAbility.ets
├── entrybackupability
│ └── EntryBackupAbility.ets
└── pages
├── AnimatableExtendDecorator
│ ├── AnimatablePropertyExample.ets // 实现折线的动画效果
│ └── AnimatablePropertyText.ets // 实现逐帧布局的效果
├── Index.ets
├── StylesDecorator
│ ├── StylesDecorator1.ets // 全局@Styles的用法
│ └── StylesDecorator2.ets // 组件内的@Styles用法
└── common
└── Index.ets
entry/src/ohosTest/
├── ets
│ └── test
│ ├── Ability.test.ets
│ ├── Index.test.ets // 测试用例代码
│ └── List.test.ets
└── module.json5
具体实现
-
@Styles可以定义在组件内或全局,在全局定义时需在方法名前面添加function关键字,组件内定义时则不需要添加function关键字。组件内@Styles的优先级高于全局@Styles。框架优先找当前组件内的@Styles,如果找不到,则会全局查找。
-
@AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的属性。在动画执行过程中,通过逐帧回调函数修改不可动画属性值,让不可动画属性也能实现动画效果。也可通过逐帧回调函数修改可动画属性的值,实现逐帧布局的效果。可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值可以使animation属性的动画效果生效,这个属性称为可动画属性。比如height、width、backgroundColor、translate属性,和Text组件的fontSize属性等。不可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值不能使animation属性的动画效果生效,这个属性称为不可动画属性。比如Polyline组件的points属性等。
相关权限
不涉及。
依赖
不涉及。
约束与限制
-
本示例仅支持标准系统上运行, 支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS 5.0.5 Release及以上。
-
DevEco Studio版本:6.0.0 Release及以上。
-
HarmonyOS SDK版本:HarmonyOS 6.0.0 Release SDK及以上。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo ArkUISample/ComponentExtension > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master



