Reference version

This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

LazyVStack

用于创建惰性垂直布局的 SwiftUI LazyVStack 组件。

iOS
tvOS
Included in Expo Go
Recommended version:
~58.0.1

Expo UI 的 LazyVStack 与官方 SwiftUI LazyVStack API 相对应,会垂直排列其子项,并仅在需要时(滚动过程中变为可见时)创建内容

安装

Terminal
- npx expo install @expo/ui
- yarn expo install @expo/ui
- pnpm expo install @expo/ui
- bun expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

基本惰性垂直堆栈

应在 ScrollView 中使用 LazyVStack,以启用惰性渲染。

BasicLazyVStackExample.tsx
import { Host, ScrollView, LazyVStack, Text, } from '@expo/ui/swift-ui'; export default function BasicLazyVStackExample() { return ( <Host style={{ flex: 1 }}> <ScrollView> <LazyVStack spacing={12}> {Array.from({ length: 100 }, (_, i) => ( <Text key={i}>{`Item ${i}`}</Text> ))} </LazyVStack> </ScrollView> </Host> ); }

使用对齐方式

alignment 属性用于控制子项的水平对齐方式。可用选项有:leading、center 和 trailing。

LazyVStackAlignmentExample.tsx
import { Host, ScrollView, LazyVStack, Rectangle, } from '@expo/ui/swift-ui'; import { frame } from '@expo/ui/swift-ui/modifiers'; export default function LazyVStackAlignmentExample() { return ( <Host matchContents={{ vertical: true }} style={{ width: '100%' }}> <ScrollView> <LazyVStack spacing={12} alignment="leading"> <Rectangle modifiers={[frame({ width: 50, height: 50 })]} /> <Rectangle modifiers={[frame({ width: 100, height: 50 })]} /> <Rectangle modifiers={[frame({ width: 75, height: 50 })]} /> </LazyVStack> </ScrollView> </Host> ); }

API

import { LazyVStack } from '@expo/ui/swift-ui';

Component

LazyVStack

iOS
tvOS

Type: React.Element<LazyVStackProps>

LazyVStackProps

alignment

iOS
tvOS
Optional • Literal type: string

The horizontal alignment of children within the stack.

Acceptable values are: 'center' | 'leading' | 'trailing'

children

iOS
tvOS
Type: ReactNode

spacing

iOS
tvOS
Optional • Type: number

The spacing between children.