This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).
LazyHStack
A SwiftUI LazyHStack component for lazy horizontal layouts.
iOS
tvOS
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
Expo UI LazyHStack matches the official SwiftUI LazyHStack API and arranges its children horizontally, creating items only as needed (when they become visible during scrolling).
Installation
Terminal
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Basic lazy horizontal stack
LazyHStack should be used inside a ScrollView with axes="horizontal" to enable lazy rendering.
BasicLazyHStackExample.tsx
import { Host, ScrollView, LazyHStack, Text } from '@expo/ui/swift-ui'; export default function BasicLazyHStackExample() { return ( <Host style={{ flex: 1 }}> <ScrollView axes="horizontal"> <LazyHStack spacing={12}> {Array.from({ length: 100 }, (_, i) => ( <Text key={i}>{`Item ${i}`}</Text> ))} </LazyHStack> </ScrollView> </Host> ); }
With alignment
The alignment prop controls vertical alignment of children. Available options are: top, center, bottom, firstTextBaseline, and lastTextBaseline.
LazyHStackAlignmentExample.tsx
import { Host, ScrollView, LazyHStack, Rectangle } from '@expo/ui/swift-ui'; import { frame } from '@expo/ui/swift-ui/modifiers'; export default function LazyHStackAlignmentExample() { return ( <Host style={{ flex: 1 }}> <ScrollView axes="horizontal"> <LazyHStack spacing={12} alignment="top"> <Rectangle modifiers={[frame({ width: 50, height: 50 })]} /> <Rectangle modifiers={[frame({ width: 50, height: 100 })]} /> <Rectangle modifiers={[frame({ width: 50, height: 75 })]} /> </LazyHStack> </ScrollView> </Host> ); }
API
import { LazyHStack } from '@expo/ui/swift-ui';
Component
Type: React.Element<LazyHStackProps>