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.

ListItem

用于显示结构化列表条目的 Jetpack Compose ListItem 组件

Android
Included in Expo Go
Recommended version:
~58.0.1

Expo UI ListItem 与官方 Jetpack Compose ListItem API 相匹配,用于构建包含标题、辅助文本、上方文本、前置内容和尾随内容插槽的结构化列表项。

两个 Material 3 列表项,显示上方文本、标题和辅助文本两个 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.

用法

基本列表项

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> ); }

使用复合组件

使用复合组件在每个位置显示丰富内容。

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 修饰符处理点击交互。

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> ); }

自定义标题内容

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

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

Android

Type: React.Element<ListItemProps>

A list item matching Compose's ListItem.

ListItemProps

children

Android
Optional • Type: ReactNode

Children containing slot sub-components.

colors

Android
Optional • Type: ListItemColors

Colors for list item elements.

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

shadowElevation

Android
Optional • Type: number • Default: ListItemDefaults.Elevation

Shadow elevation in dp.

tonalElevation

Android
Optional • Type: number • Default: ListItemDefaults.Elevation

Tonal elevation in dp.

Types

ListItemColors

Android

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
-