文档管理中心
您当前浏览的HarmonyOS 5.0.1(API 13)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更
API参考应用框架ArkUI(方舟UI框架)ArkTS组件组件通用信息通用属性组件内容填充方式

组件内容填充方式

用于决定在组件的宽高动画过程中,如何将动画最终的组件内容绘制在组件上。

说明

从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

renderFit

renderFit(fitMode: RenderFit)

设置宽高动画过程中的组件内容填充方式。

元服务API: 从API version 11开始,该接口支持在元服务中使用。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

展开
参数名 类型 必填 说明
fitMode RenderFit

设置宽高动画过程中的组件内容填充方式。

当不设置renderFit属性时,取默认值RenderFit.TOP_LEFT。

说明

对于TEXTURE和SURFACE类型的XComponent组件,当不设置renderFit属性时,取默认值为RenderFit.RESIZE_FILL。

RenderFit枚举说明

元服务API: 从API version 11开始,该接口支持在元服务中使用。

展开
名称 描述 示意图
CENTER 保持动画终态的内容大小,并且内容始终与组件保持中心对齐。
TOP 保持动画终态的内容大小,并且内容始终与组件保持顶部中心对齐。
BOTTOM 保持动画终态的内容大小,并且内容始终与组件保持底部中心对齐。
LEFT 保持动画终态的内容大小,并且内容始终与组件保持左侧对齐。
RIGHT 保持动画终态的内容大小,并且内容始终与组件保持右侧对齐。
TOP_LEFT 保持动画终态的内容大小,并且内容始终与组件保持左上角对齐。
TOP_RIGHT 保持动画终态的内容大小,并且内容始终与组件保持右上角对齐。
BOTTOM_LEFT 保持动画终态的内容大小,并且内容始终与组件保持左下角对齐。
BOTTOM_RIGHT 保持动画终态的内容大小,并且内容始终与组件保持右下角对齐。
RESIZE_FILL 不考虑动画终态内容的宽高比,并且内容始终缩放到组件的大小。
RESIZE_CONTAIN 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内,且与组件保持中心对齐。
RESIZE_CONTAIN_TOP_LEFT 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内。当组件宽方向有剩余时,内容与组件保持左侧对齐,当组件高方向有剩余时,内容与组件保持顶部对齐。
RESIZE_CONTAIN_BOTTOM_RIGHT 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内。当组件宽方向有剩余时,内容与组件保持右侧对齐,当组件高方向有剩余时,内容与组件保持底部对齐。
RESIZE_COVER 保持动画终态内容的宽高比进行缩小或放大,使内容两边都大于或等于组件两边,且与组件保持中心对齐,显示内容的中间部分。
RESIZE_COVER_TOP_LEFT 保持动画终态内容的宽高比进行缩小或放大,使内容的两边都恰好大于或等于组件两边。当内容宽方向有剩余时,内容与组件保持左侧对齐,显示内容的左侧部分。当内容高方向有剩余时,内容与组件保持顶部对齐,显示内容的顶侧部分。
RESIZE_COVER_BOTTOM_RIGHT 保持动画终态内容的宽高比进行缩小或放大,使内容的两边都恰好大于或等于组件两边。当内容宽方向有剩余时,内容与组件保持右侧对齐,显示内容的右侧部分。当内容高方向有剩余时,内容与组件保持底部对齐,显示内容的底侧部分。
说明
  • 示意图中,蓝色区域表示内容,橙黄色区域表示节点大小。
  • 不同的内容填充方式在宽高动画过程中效果不一致,开发者需要选择合适的内容填充方式以实现需要的动画效果。

示例

该示例主要演示通过renderFit设置宽高动画过程中的组件内容不同填充方式。

收起
自动换行
深色代码主题
复制
  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct RenderFitExample {
  5. @State width1: number = 100;
  6. @State height1: number = 30;
  7. flag: boolean = true;
  8. build() {
  9. Column() {
  10. Text("Hello")
  11. .width(this.width1)
  12. .height(this.height1)
  13. .borderWidth(1)
  14. .textAlign(TextAlign.Start)
  15. .renderFit(RenderFit.LEFT)// 设置LEFT的renderFit,动画过程中,动画的终态内容与组件保持左对齐
  16. .margin(20)
  17. Text("Hello")
  18. .width(this.width1)
  19. .height(this.height1)
  20. .textAlign(TextAlign.Center)
  21. .borderWidth(1)
  22. .renderFit(RenderFit.CENTER)// 设置CENTER的renderFit,动画过程中,动画的终态内容与组件保持中心对齐
  23. .margin(20)
  24. Button("animate")
  25. .onClick(() => {
  26. animateTo({ curve: Curve.Ease }, () => {
  27. if (this.flag) {
  28. this.width1 = 150;
  29. this.height1 = 50;
  30. } else {
  31. this.width1 = 100;
  32. this.height1 = 30;
  33. }
  34. this.flag = !this.flag;
  35. })
  36. })
  37. }.width("100%").height("100%").alignItems(HorizontalAlign.Center)
  38. }
  39. }

在 API参考 中进行搜索
请输入您想要搜索的关键词