LazyHStack
A SwiftUI LazyHStack component for lazy horizontal layouts.
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
- 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.
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.
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>
stringThe vertical alignment of children within the stack.
Acceptable values are: 'center' | 'top' | 'bottom' | 'firstTextBaseline' | 'lastTextBaseline'
ReactNode