frame
frame 属性用于设置视图的尺寸(固定或弹性)以及在容器中的对齐方式。支持两种不同的配置格式:
1. 固定尺寸格式
1frame?: {
2 width?: number
3 height?: number
4 alignment?: Alignment
5}
用于指定固定的宽度和高度,并设置在该区域内的对齐方式。
示例
1<VStack
2 frame={{
3 width: 100,
4 height: 100,
5 alignment: 'center'
6 }}
7>
8 <Text>固定尺寸</Text>
9</VStack>
2. 弹性尺寸格式
1frame?: {
2 alignment?: Alignment
3 minWidth?: number
4 minHeight?: number
5 maxWidth?: number | 'infinity'
6 maxHeight?: number | 'infinity'
7 idealWidth?: number | 'infinity'
8 idealHeight?: number | 'infinity'
9}
用于设置最小、最大和理想尺寸。数值可以为具体数值或字符串 'infinity',表示尽可能占满可用空间。
示例
1<HStack
2 frame={{
3 minWidth: 100,
4 maxWidth: 'infinity',
5 minHeight: 50,
6 idealHeight: 100,
7 alignment: 'leading'
8 }}
9>
10 <Text>可扩展宽度</Text>
11</HStack>
对齐方式(Alignment)
alignment 决定视图在其 frame 内的布局位置。支持的值包括:
'center'(居中)
'top'(顶部对齐)
'bottom'(底部对齐)
'leading'(前导边对齐,LTR 中为左)
'trailing'(尾部边对齐,LTR 中为右)
'topLeading'(左上角)
'topTrailing'(右上角)
'bottomLeading'(左下角)
'bottomTrailing'(右下角)
注意:仅当 frame 的尺寸大于内容视图的自然尺寸时,对齐方式才会起作用。
示例
1<Text
2 frame={{
3 width: 200,
4 height: 100,
5 alignment: 'bottomTrailing'
6 }}
7>
8 对齐文本
9</Text>
使用建议
- 如果需要精确控制尺寸,建议使用固定格式的
width 和 height。
- 如果希望布局适应不同屏幕或内容,推荐使用弹性尺寸的
min / max / ideal 格式。
- 请勿在同一个
frame 对象中混合使用 width / height 与 minWidth / maxWidth 等,以避免冲突。
总结
frame 属性是布局控制的基础工具,可用于设定视图尺寸和定位方式。借助 CommonViewProps,你可以灵活地构建适配性强、结构清晰的界面布局。