This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
加载指示器
用于显示加载状态的 Jetpack Compose 加载指示器组件。
Expo UI 加载指示器与官方 Jetpack Compose 加载指示器 API 保持一致。

安装
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
用法
加载指示器
来自 Material 3 Expressive 的变形形状加载动画。
import { Host, LoadingIndicator } from '@expo/ui/jetpack-compose'; export default function LoadingIndicatorExample() { return ( <Host matchContents> <LoadingIndicator /> </Host> ); }
带容器的加载指示器
位于有色背景中的加载指示器。
import { Host, ContainedLoadingIndicator } from '@expo/ui/jetpack-compose'; export default function ContainedLoadingIndicatorExample() { return ( <Host matchContents> <ContainedLoadingIndicator /> </Host> ); }
不确定进度
省略 progress 属性即可持续动画,而不指示具体完成进度。
import { ContainedLoadingIndicator, Host, LoadingIndicator, Row } from '@expo/ui/jetpack-compose'; export default function IndeterminateExample() { return ( <Host matchContents> <Row horizontalArrangement={{ spacedBy: 16 }}> <LoadingIndicator /> <ContainedLoadingIndicator /> </Row> </Host> ); }
确定进度
将来自 useNativeState 的可观察状态作为 progress 传入。将 progress.value 更新为 0 到 1 之间。
import { ContainedLoadingIndicator, Host, LoadingIndicator, Row, useNativeState, } from '@expo/ui/jetpack-compose'; import { useEffect } from 'react'; export default function DeterminateExample() { const progress = useNativeState(0); useEffect(() => { const interval = setInterval(() => { progress.value = (progress.value + 0.05) % 1; }, 500); return () => clearInterval(interval); }, [progress]); return ( <Host matchContents> <Row horizontalArrangement={{ spacedBy: 16 }}> <LoadingIndicator progress={progress} /> <ContainedLoadingIndicator progress={progress} /> </Row> </Host> ); }
API
import { LoadingIndicator, ContainedLoadingIndicator } from '@expo/ui/jetpack-compose';
Components
Type: React.Element<ComponentType<ContainedLoadingIndicatorProps>>
A loading indicator that displays loading using morphing shapes inside a container.
Matches the Jetpack Compose ContainedLoadingIndicator.
Type: React.Element<ComponentType<LoadingIndicatorCommonConfig>>
A loading indicator that displays loading using morphing shapes.
Matches the Jetpack Compose LoadingIndicator.
Types
Common props shared by loading indicator variants.
| Property | Type | Description |
|---|---|---|
| color(optional) | ColorValue | Loading indicator color. |
| modifiers(optional) | ModifierConfig[] | Modifiers for the component. |
| progress(optional) | ObservableState<number | null> | An observable state that holds the current progress value.
Create one with |
Observable state shared between JavaScript and native views (Jetpack Compose on Android and SwiftUI on iOS).
Type: SharedObject extended by:
| Property | Type | Description |
|---|---|---|
| onChange | [listener] | null | A single listener invoked on the native UI runtime whenever the value changes
(after iOS The callback must be a worklet so it can run synchronously on the UI thread.
Attach it inside Example
|
| value | T | The current value. Writes from a UI worklet are synchronous and immediately readable. Writes from the JS thread are scheduled to the UI thread asynchronously, the new value is not readable until the update has been applied. Prefer writing from a worklet when you need synchronous updates |
| get | () => T | Reads the current value. A React Compiler compliant alternative to reading |
| set | (value: T) => void | Writes a new value. A React Compiler-compliant alternative to assigning |