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.

LazyColumn

用于显示可滚动列表的 Jetpack Compose LazyColumn 组件。

Android
Included in Expo Go
Recommended version:
~58.0.1

一种延迟加载的垂直列表组件,仅渲染可见项,以实现高效滚动。如需了解更多信息,请参阅官方 Jetpack Compose 文档。

LazyColumn 正在渲染包含五个 Material 3 列表项的设置列表LazyColumn 正在渲染包含五个 Material 3 列表项的设置列表

安装

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.

用法

基本延迟加载列

BasicLazyColumn.tsx
import { Host, LazyColumn, ListItem, Text, } from '@expo/ui/jetpack-compose'; const items = Array.from( { length: 100 }, (_, i) => `Item ${i + 1}` ); export default function BasicLazyColumn() { return ( <Host style={{ height: 400 }}> <LazyColumn> {items.map(item => ( <ListItem key={item}> <ListItem.HeadlineContent> <Text>{item}</Text> </ListItem.HeadlineContent> </ListItem> ))} </LazyColumn> </Host> ); }

设置排列方式

使用 verticalArrangement 属性控制列表中各项之间的间距。传入 'spaceBetween' 这样的字符串值,或传入 { spacedBy: 8 } 这样的对象,以设置固定的 dp 间距。

LazyColumnArrangement.tsx
import { Host, LazyColumn, ListItem, Text, } from '@expo/ui/jetpack-compose'; export default function LazyColumnArrangement() { return ( <Host style={{ height: 400 }}> <LazyColumn verticalArrangement={{ spacedBy: 8 }} horizontalAlignment="center"> <ListItem> <ListItem.HeadlineContent> <Text>Spaced Item 1</Text> </ListItem.HeadlineContent> </ListItem> <ListItem> <ListItem.HeadlineContent> <Text>Spaced Item 2</Text> </ListItem.HeadlineContent> </ListItem> <ListItem> <ListItem.HeadlineContent> <Text>Spaced Item 3</Text> </ListItem.HeadlineContent> </ListItem> </LazyColumn> </Host> ); }

设置内容内边距

使用 contentPadding 属性为列表内容添加 dp 单位的内边距。

LazyColumnPadding.tsx
import { Host, LazyColumn, ListItem, Text, } from '@expo/ui/jetpack-compose'; export default function LazyColumnPadding() { return ( <Host style={{ height: 400 }}> <LazyColumn contentPadding={{ start: 16, top: 8, end: 16, bottom: 8 }}> <ListItem> <ListItem.HeadlineContent> <Text>Padded item 1</Text> </ListItem.HeadlineContent> </ListItem> <ListItem> <ListItem.HeadlineContent> <Text>Padded item 2</Text> </ListItem.HeadlineContent> </ListItem> <ListItem> <ListItem.HeadlineContent> <Text>Padded item 3</Text> </ListItem.HeadlineContent> </ListItem> </LazyColumn> </Host> ); }

API

import { LazyColumn } from '@expo/ui/jetpack-compose';

Component

LazyColumn

Android

Type: React.Element<LazyColumnProps>

A lazy column component that efficiently displays a vertically scrolling list.

LazyColumnProps

children

Android
Optional • Type: ReactNode

The content to display inside the lazy column.

contentPadding

Android
Optional • Type: ContentPadding

Content padding in dp.

horizontalAlignment

Android
Optional • Literal type: string

The horizontal alignment of items.

Acceptable values are: 'center' | 'start' | 'end'

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

verticalArrangement

Android
Optional • Literal type: union

The vertical arrangement of items. Can be a preset string or an object with spacedBy to specify spacing in dp.

Acceptable values are: 'center' | 'top' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly' | 'bottom' | { spacedBy: number }

Types

ContentPadding

Android

Content padding values for LazyColumn.

PropertyTypeDescription
bottom(optional)number

Bottom padding in dp.

end(optional)number

End padding in dp.

start(optional)number

Start padding in dp.

top(optional)number

Top padding in dp.