技能 编程开发 Expo Jetpack Compose UI开发指南

Expo Jetpack Compose UI开发指南

v20260424
expo-ui-jetpack-compose
本技能指南指导开发者如何在Expo应用中使用Jetpack Compose视图和修饰符,构建原生Android界面。它允许开发者利用Compose和Material Design 3的模式,在Expo环境中实现复杂的UI组件,适用于需要高度原生和性能优化的Android界面构建场景。
获取技能
176 次下载
概览

name: expo-ui-jetpack-compose description: @expo/ui/jetpack-compose package lets you use Jetpack Compose Views and modifiers in your app.

The instructions in this skill apply to SDK 55 only. For other SDK versions, refer to the Expo UI Jetpack Compose docs for that version for the most accurate information.

When to Use

  • You need to build Android-native UI in Expo using @expo/ui/jetpack-compose.
  • The task involves choosing Compose views or modifiers, embedding them in Host, or translating Jetpack Compose patterns into Expo UI code.
  • You are working specifically against Expo SDK 55 behavior for Jetpack Compose integration.

Installation

npx expo install @expo/ui

A native rebuild is required after installation (npx expo run:android).

Instructions

  • Expo UI's API mirrors Jetpack Compose's API. Use Jetpack Compose and Material Design 3 knowledge to decide which components or modifiers to use.
  • Components are imported from @expo/ui/jetpack-compose, modifiers from @expo/ui/jetpack-compose/modifiers.
  • When about to use a component, fetch its docs to confirm the API - https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/{component-name}/index.md
  • When unsure about a modifier's API, refer to the docs - https://docs.expo.dev/versions/v55.0.0/sdk/ui/jetpack-compose/modifiers/index.md
  • Every Jetpack Compose tree must be wrapped in Host. Use <Host matchContents> for intrinsic sizing, or <Host style={{ flex: 1 }}> when you need explicit size (e.g. as a parent of LazyColumn). Example:
import { Host, Column, Button, Text } from "@expo/ui/jetpack-compose";
import { fillMaxWidth, paddingAll } from "@expo/ui/jetpack-compose/modifiers";

<Host matchContents>
  <Column verticalArrangement={{ spacedBy: 8 }} modifiers={[fillMaxWidth(), paddingAll(16)]}>
    <Text style={{ typography: "titleLarge" }}>Hello</Text>
    <Button onPress={() => alert("Pressed!")}>Press me</Button>
  </Column>
</Host>;

Key Components

  • LazyColumn — Use instead of react-native ScrollView/FlatList for scrollable lists. Wrap in <Host style={{ flex: 1 }}>.
  • Icon — Use <Icon source={require('./icon.xml')} size={24} /> with Android XML vector drawables from Material Symbols.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
信息
Category 编程开发
Name expo-ui-jetpack-compose
版本 v20260424
大小 2.67KB
更新时间 2026-04-25
语言