1# 组件内容填充方式 2 3用于决定在组件的宽高动画过程中,如何将动画最终的组件内容绘制在组件上。 4 5> **说明:** 6> 7> 从API Version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 8 9 10## 属性 11 12| 名称 | 参数类型 | 必填 | 描述 | 13| -----| ------------------------------------------ | -----| ------------------------------------ | 14| renderFit | [RenderFit](#renderfit枚举说明) | 是 | 设置宽高动画过程中的组件内容填充方式。<br/>当不设置renderFit属性时,取默认值RenderFit.TOP_LEFT。 | 15 16## RenderFit枚举说明 17 18| 名称 | 描述 | 示意图 | 19| ------- | ------------------------------------ | --------------------------------- | 20| CENTER | 保持动画终态的内容大小,并且内容始终与组件保持中心对齐。 |  | 21| TOP | 保持动画终态的内容大小,并且内容始终与组件保持顶部中心对齐。 |  | 22| BOTTOM | 保持动画终态的内容大小,并且内容始终与组件保持底部中心对齐。 |  | 23| LEFT | 保持动画终态的内容大小,并且内容始终与组件保持左侧对齐。 |  | 24| RIGHT | 保持动画终态的内容大小,并且内容始终与组件保持右侧对齐。 |  | 25| TOP_LEFT | 保持动画终态的内容大小,并且内容始终与组件保持左上角对齐。 |  | 26| TOP_RIGHT | 保持动画终态的内容大小,并且内容始终与组件保持右上角对齐。 |  | 27| BOTTOM_LEFT | 保持动画终态的内容大小,并且内容始终与组件保持左下角对齐。 |  | 28| BOTTOM_RIGHT | 保持动画终态的内容大小,并且内容始终与组件保持右下角对齐。 |  | 29| RESIZE_FILL | 不考虑动画终态内容的宽高比,并且内容始终缩放到组件的大小。 |  | 30| RESIZE_CONTAIN | 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内,且与组件保持中心对齐。 |  | 31| RESIZE_CONTAIN_TOP_LEFT | 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内。当组件宽方向有剩余时,内容与组件保持左侧对齐,当组件高方向有剩余时,内容与组件保持顶部对齐。 |  | 32| RESIZE_CONTAIN_BOTTOM_RIGHT | 保持动画终态内容的宽高比进行缩小或放大,使内容完整显示在组件内。当组件宽方向有剩余时,内容与组件保持右侧对齐,当组件高方向有剩余时,内容与组件保持底部对齐。 |  | 33| RESIZE_COVER | 保持动画终态内容的宽高比进行缩小或放大,使内容两边都大于或等于组件两边,且与组件保持中心对齐,显示内容的中间部分。 |  | 34| RESIZE_COVER_TOP_LEFT | 保持动画终态内容的宽高比进行缩小或放大,使内容的两边都恰好大于或等于组件两边。当内容宽方向有剩余时,内容与组件保持左侧对齐,显示内容的左侧部分。当内容高方向有剩余时,内容与组件保持顶部对齐,显示内容的顶侧部分。 |  | 35| RESIZE_COVER_BOTTOM_RIGHT | 保持动画终态内容的宽高比进行缩小或放大,使内容的两边都恰好大于或等于组件两边。当内容宽方向有剩余时,内容与组件保持右侧对齐,显示内容的右侧部分。当内容高方向有剩余时,内容与组件保持底部对齐,显示内容的底侧部分。|  | 36 37> **说明:** 38> 39> - 示意图中,蓝色区域表示内容,橙黄色区域表示节点大小。 40> - 不同的内容填充方式在宽高动画过程中效果不一致,开发者需要选择合适的内容填充方式以实现需要的动画效果。 41 42## 示例 43 44```ts 45// xxx.ets 46@Entry 47@Component 48struct RenderFitExample { 49 @State width1: number = 100; 50 @State height1: number = 30; 51 flag: boolean = true; 52 build() { 53 Column() { 54 Text("Hello") 55 .width(this.width1) 56 .height(this.height1) 57 .borderWidth(1) 58 .textAlign(TextAlign.Start) 59 .renderFit(RenderFit.LEFT) // 设置LEFT的renderFit,动画过程中,动画的终态内容与组件保持左对齐 60 .margin(20) 61 62 Text("Hello") 63 .width(this.width1) 64 .height(this.height1) 65 .textAlign(TextAlign.Center) 66 .borderWidth(1) 67 .renderFit(RenderFit.CENTER) // 设置CENTER的renderFit,动画过程中,动画的终态内容与组件保持中心对齐 68 .margin(20) 69 70 Button("animate") 71 .onClick(() => { 72 animateTo({ curve: Curve.Ease }, () => { 73 if (this.flag) { 74 this.width1 = 150; 75 this.height1 = 50; 76 } else { 77 this.width1 = 100; 78 this.height1 = 30; 79 } 80 this.flag = !this.flag; 81 }) 82 }) 83 }.width("100%").height("100%").alignItems(HorizontalAlign.Center) 84 } 85} 86``` 87 88 89