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

ListItem

用于显示结构化列表项的 Jetpack Compose ListItem 组件。

Android
Included in Expo Go
Recommended version:
~57.0.3

Expo UI ListItem 与官方 Jetpack Compose ListItem API 匹配,用于具有标题、辅助、上标、前置和后置内容槽的结构化列表条目。

Two Material 3 list items showing overline, headline, and supporting text

安装

🌐 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 list item

BasicListItem.tsx
import { Host, ListItem, Text } from '@expo/ui/jetpack-compose'; export default function BasicListItem() { return ( <Host matchContents> <ListItem> <ListItem.HeadlineContent> <Text>Settings</Text> </ListItem.HeadlineContent> </ListItem> </Host> ); }

带复合组件

🌐 With compound components

在每个位置使用复合组件以实现丰富内容。

🌐 Use compound components for rich content in each position.

ListItemWithCompoundComponent.tsx
import { Host, ListItem, Icon, Text } from '@expo/ui/jetpack-compose'; export default function ListItemWithSlots() { return ( <Host matchContents> <ListItem> <ListItem.HeadlineContent> <Text>Notifications</Text> </ListItem.HeadlineContent> <ListItem.OverlineContent> <Text>ACCOUNT</Text> </ListItem.OverlineContent> <ListItem.SupportingContent> <Text>Manage notification preferences</Text> </ListItem.SupportingContent> <ListItem.LeadingContent> <Icon source={require('./assets/notifications.xml')} /> </ListItem.LeadingContent> <ListItem.TrailingContent> <Icon source={require('./assets/chevron.xml')} /> </ListItem.TrailingContent> </ListItem> </Host> ); }

可点击的列表项

🌐 Clickable list item

使用 clickable 修饰符来处理点击交互。

🌐 Use the clickable modifier to handle tap interactions.

ClickableListItem.tsx
import { Host, ListItem, Text } from '@expo/ui/jetpack-compose'; import { clickable } from '@expo/ui/jetpack-compose/modifiers'; export default function ClickableListItem() { return ( <Host matchContents> <ListItem modifiers={[clickable(() => console.log('Tapped!'))]}> <ListItem.HeadlineContent> <Text>Tap me</Text> </ListItem.HeadlineContent> </ListItem> </Host> ); }

自定义标题内容

🌐 Custom headline content

使用 ListItem.HeadlineContent 用于可组合的标题内容,例如带图标的行。

🌐 Use ListItem.HeadlineContent for composable headline content like rows with icons.

ListItemCustomHeadline.tsx
import { Host, ListItem, Text, Row, Icon } from '@expo/ui/jetpack-compose'; export default function ListItemCustomHeadline() { return ( <Host matchContents> <ListItem> <ListItem.HeadlineContent> <Row horizontalArrangement={{ spacedBy: 8 }} verticalAlignment="center"> <Text>Premium Feature</Text> <Icon source={require('./assets/star.xml')} size={16} /> </Row> </ListItem.HeadlineContent> </ListItem> </Host> ); }

应用接口

🌐 API

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

Component

ListItem

Type: React.Element<ListItemProps>

A list item matching Compose's ListItem.

ListItemProps

children

Optional • Type: ReactNode

Children containing slot sub-components.

colors

Optional • Type: ListItemColors

Colors for list item elements.

modifiers

Optional • Type: ModifierConfig[]

Modifiers for the component.

shadowElevation

Optional • Type: number • Default: ListItemDefaults.Elevation

Shadow elevation in dp.

tonalElevation

Optional • Type: number • Default: ListItemDefaults.Elevation

Tonal elevation in dp.

Types

ListItemColors

Colors for list item elements, matching ListItemDefaults.colors().

PropertyTypeDescription
containerColor(optional)ColorValue
-
contentColor(optional)ColorValue
-
leadingContentColor(optional)ColorValue
-
overlineContentColor(optional)ColorValue
-
supportingContentColor(optional)ColorValue
-
trailingContentColor(optional)ColorValue
-