Reference version

LazyHStack

A SwiftUI LazyHStack component for lazy horizontal layouts.

iOS
tvOS
Included in Expo Go
Bundled version:
~57.0.1

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/ui

If 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

LazyHStack

Type: React.Element<LazyHStackProps>

LazyHStackProps

alignment

Optional • Literal type: string

The vertical alignment of children within the stack.

Acceptable values are: 'center' | 'top' | 'bottom' | 'firstTextBaseline' | 'lastTextBaseline'

children

Type: ReactNode

spacing

Optional • Type: number

The spacing between children.