Jetpack Compose
使用 @expo/ui 构建原生 Android 界面的 Jetpack Compose 组件。
For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.
重要 此库目前处于 alpha 阶段,并且会频繁出现破坏性变更。 它在 Expo Go 应用中不可用 — 请使用开发构建来试用它。
@expo/ui/jetpack-compose 中的 Jetpack Compose 组件允许你使用来自 React Native 的 Jetpack Compose 构建完全原生的 Android 界面。
安装
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
组件
Button
import { Button } from '@expo/ui/jetpack-compose'; <Button style={{ flex: 1 }} variant="default" onPress={() => { setEditingProfile(true); }}> 编辑个人资料 </Button>
另请参阅:Jetpack Compose 官方文档
CircularProgress
import { CircularProgress } from '@expo/ui/jetpack-compose'; <CircularProgress progress={0.5} style={{ width: 300 }} color="blue" elementColors={{ trackColor: '#cccccc' }} />
另请参阅:Jetpack Compose 官方文档
ContextMenu
注意: 也称为 DropdownMenu。
import { ContextMenu } from '@expo/ui/jetpack-compose'; <ContextMenu style={{ width: 150, height: 50 }}> <ContextMenu.Items> <Button elementColors={{ containerColor: '#0000ff', contentColor: '#00ff00' }} onPress={() => console.log('Pressed1')}> 你好 </Button> <Button variant="bordered" color="#ff0000" onPress={() => console.log('Pressed2')}> 我喜欢它 </Button> <Picker label="Doggos" options={['very', 'veery', 'veeery', 'much']} variant="menu" selectedIndex={selectedIndex} onOptionSelected={({ nativeEvent: { index } }) => setSelectedIndex(index)} /> </ContextMenu.Items> <ContextMenu.Trigger> <Button variant="bordered" style={{ width: 150, height: 50 }}> 显示菜单 </Button> </ContextMenu.Trigger> </ContextMenu>
另请参阅:Jetpack Compose 官方文档
Chip
import { Chip } from '@expo/ui/jetpack-compose'; // 带图标的辅助芯片 <Chip variant="assist" label="书籍" leadingIcon="filled.Add" onPress={() => console.log('正在打开航班预订...')} /> // 带选择功能的筛选芯片 <Chip variant="filter" label="图片" leadingIcon="filled.Star" selected={selectedFilters.includes('Images')} onPress={() => handleFilterToggle('Images')} /> // 可关闭的输入芯片 <Chip variant="input" label="工作" leadingIcon="filled.Create" onDismiss={() => handleInputDismiss('Work')} /> // 建议芯片 <Chip variant="suggestion" label="附近" leadingIcon="filled.LocationOn" onPress={() => console.log('正在搜索附近...')} />
另请参阅:Jetpack Compose 官方文档
DateTimePicker (date)
import { DateTimePicker } from '@expo/ui/jetpack-compose'; <DateTimePicker onDateSelected={date => { setSelectedDate(date); }} displayedComponents='date' initialDate={selectedDate.toISOString()} variant='picker' />
另请参阅:Jetpack Compose 官方文档
DateTimePicker (time)
import { DateTimePicker } from '@expo/ui/jetpack-compose'; <DateTimePicker onDateSelected={date => { setSelectedDate(date); }} displayedComponents='hourAndMinute' initialDate={selectedDate.toISOString()} variant='picker' />
另请参阅:Jetpack Compose 官方文档
LinearProgress
import { LinearProgress } from '@expo/ui/jetpack-compose'; <LinearProgress progress={0.5} style={{ width: 300 }} color="red" />
另请参阅:Jetpack Compose 官方文档
Picker (radio)
import { Picker } from '@expo/ui/jetpack-compose'; <Picker options={['$', '$$', '$$$', '$$$$']} selectedIndex={selectedIndex} onOptionSelected={({ nativeEvent: { index } }) => { setSelectedIndex(index); }} variant="radio" />
另请参阅:Jetpack Compose 官方文档
Picker (segmented)
import { Picker } from '@expo/ui/jetpack-compose'; <Picker options={['$', '$$', '$$$', '$$$$']} selectedIndex={selectedIndex} onOptionSelected={({ nativeEvent: { index } }) => { setSelectedIndex(index); }} variant="segmented" />
另请参阅:Jetpack Compose 官方文档
Slider
import { Slider } from '@expo/ui/jetpack-compose'; <Slider style={{ minHeight: 60 }} value={value} onValueChange={(value) => { setValue(value); }} />
另请参阅:Jetpack Compose 官方文档
Switch (toggle)
注意: 也称为 Toggle。
import { Switch } from '@expo/ui/jetpack-compose'; <Switch value={checked} onValueChange={checked => { setChecked(checked); }} color="#ff0000" label="播放音乐" variant="switch" />
另请参阅:Jetpack Compose 官方文档
Switch (checkbox)
import { Switch } from '@expo/ui/jetpack-compose'; <Switch value={checked} onValueChange={checked => { setChecked(checked); }} label="播放音乐" color="#ff0000" variant="checkbox" />
另请参阅:Jetpack Compose 官方文档
TextInput
import { TextInput } from '@expo/ui/jetpack-compose'; <TextInput autocorrection={false} defaultValue="单行文本输入" onChangeText={setValue} />
另请参阅:Jetpack Compose 官方文档
API
完整文档尚不可用。请使用 TypeScript 类型来探索该 API。
// 从 Jetpack Compose 包导入 import { Button } from '@expo/ui/jetpack-compose';