containerRelativeFrame

将当前视图放置在一个相对于其最近容器尺寸的“隐形框架”中。该修饰符适用于 ScrollViewGrid、布局栈等容器中,用于实现按比例布局或视图对齐。

类型定义

1containerRelativeFrame?: {
2  axes: AxisSet
3  alignment?: Alignment
4  count: never
5  span: never
6  spacing: never
7} | {
8  axes: AxisSet
9  alignment?: Alignment
10  count: number
11  span?: number
12  spacing: number
13}

描述

该修饰符允许视图根据其父容器的尺寸进行相对的布局和定位。常用于构建按比例划分空间的布局,或配合滚动视图对视图进行精准定位。


属性说明

  • axes (AxisSet,必填) 指定在哪些轴向上应用相对布局(可选值:horizontalverticalall)。

  • alignment (Alignment,可选,默认值:"center") 控制视图在容器内的对齐方式。

  • count (number,可选,仅在第二种用法中有效) 容器会被划分为多少等分。

  • span (number,可选,默认值为 1) 当前视图应占据多少等分。

  • spacing (number,仅在第二种用法中为必填) 分段之间的间距。


使用方式

该修饰符支持两种配置模式:

1. 自动适应模式

仅指定对齐方向和轴向,不设置具体划分方式。

1containerRelativeFrame={{
2  axes: 'horizontal',
3  alignment: 'leading'
4}}

2. 按比例划分模式

将容器划分为若干等分,并为每个视图分配所占比例及间距。

1containerRelativeFrame={{
2  axes: 'horizontal',
3  count: 4,
4  span: 2,
5  spacing: 10
6}}

示例

1<HStack>
2  <Text
3    containerRelativeFrame={{
4      axes: 'horizontal',
5      count: 3,
6      span: 1,
7      spacing: 8,
8      alignment: 'center'
9    }}
10  >
11    占据三分之一宽度
12  </Text>
13</HStack>

该示例将文字放入一个宽度为容器三分之一的区域内,视图之间的间距为 8。


参考资料