IconButton

Jetpack Compose IconButton 组件用于显示原生 Material3 图标按钮。

Android
Bundled version:
~55.0.2

Expo UI 提供四个图标按钮组件,这些组件与官方 Jetpack Compose IconButton API 相匹配:IconButtonFilledIconButtonFilledTonalIconButtonOutlinedIconButton。所有变体共享相同的属性,并接受可组合的子组件作为内容。

🌐 Expo UI provides four icon button components that match the official Jetpack Compose IconButton API: IconButton, FilledIconButton, FilledTonalIconButton, and OutlinedIconButton. All variants share the same props and accept composable children for content.

安装

🌐 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 icon button

一个没有背景的标准图标按钮,通常用于工具栏操作。

🌐 A standard icon button with no background, typically used for toolbar actions.

BasicIconButtonExample.tsx
import { Host, IconButton, Icon } from '@expo/ui/jetpack-compose'; export default function BasicIconButtonExample() { return ( <Host matchContents> <IconButton onClick={() => alert('Pressed!')}> <Icon source={require('./assets/settings.xml')} size={24} /> </IconButton> </Host> ); }

图标按钮变体

🌐 Icon button variants

使用不同的图标按钮组件来传达不同程度的强调。

🌐 Use different icon button components to convey varying levels of emphasis.

IconButtonVariantsExample.tsx
import { Host, IconButton, FilledIconButton, FilledTonalIconButton, OutlinedIconButton, Icon, Row, } from '@expo/ui/jetpack-compose'; export default function IconButtonVariantsExample() { return ( <Host matchContents> <Row horizontalArrangement={{ spacedBy: 8 }}> <IconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </IconButton> <FilledIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </FilledIconButton> <FilledTonalIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </FilledTonalIconButton> <OutlinedIconButton onClick={() => {}}> <Icon source={require('./assets/star.xml')} size={24} /> </OutlinedIconButton> </Row> </Host> ); }

应用接口

🌐 API

import { IconButton, FilledIconButton, FilledTonalIconButton, OutlinedIconButton, } from '@expo/ui/jetpack-compose';

Components

FilledIconButton

Android

Type: React.Element<IconButtonProps>

A filled icon button with a solid background.

FilledTonalIconButton

Android

Type: React.Element<IconButtonProps>

A filled tonal icon button with a muted background.

IconButton

Android

Type: React.Element<IconButtonProps>

A standard icon button with no background.

IconButtonProps

children

Android
Type: React.ReactNode

Content to display inside the icon button.

colors

Android
Optional • Type: IconButtonColors

Colors for icon button elements.

enabled

Android
Optional • Type: boolean • Default: true

Whether the icon button is enabled for user interaction.

modifiers

Android
Optional • Type: ModifierConfig[]

Modifiers for the component.

onClick

Android
Optional • Type: () => void

Callback that is called when the icon button is clicked.

shape

Android
Optional • Type: ShapeJSXElement

The shape of the icon button.

OutlinedIconButton

Android

Type: React.Element<IconButtonProps>

An outlined icon button with a border and no fill.

Types

IconButtonColors

Android

Colors for icon button elements.

PropertyTypeDescription
containerColor(optional)ColorValue
-
contentColor(optional)ColorValue
-
disabledContainerColor(optional)ColorValue
-
disabledContentColor(optional)ColorValue
-