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.

滑块

用于从连续或分段范围中选择值的控件

Android
iOS
Web
Included in Expo Go
Recommended version:
~58.0.1

一个受控滑块,用于在一个范围内选择数值。将 value 与 onValueChange 配对,以通过 React 管理状态。

位于不同位置的两个 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.

用法

连续滑块

默认范围为 [0, 1]。

ContinuousSliderExample.tsx
import { useState } from 'react'; import { Host, Slider } from '@expo/ui'; export default function ContinuousSliderExample() { const [value, setValue] = useState(0.5); return ( <Host matchContents={{ vertical: true }} style={{ width: '100%' }}> <Slider value={value} onValueChange={setValue} /> </Host> ); }

带自定义范围的分段滑块

使用 min、max 和 step 限制滑块产生的值。

SteppedSliderExample.tsx
import { useState } from 'react'; import { useColorScheme } from 'react-native'; import { Host, Column, Slider, Text } from '@expo/ui'; export default function SteppedSliderExample() { const [volume, setVolume] = useState(50); const colorScheme = useColorScheme(); return ( <Host matchContents={{ vertical: true }} style={{ width: '100%' }}> <Column spacing={8}> <Text textStyle={{ color: colorScheme === 'dark' ? '#FFFFFF' : '#000000' }}> {`Volume: ${volume}`} </Text> <Slider value={volume} onValueChange={setVolume} min={0} max={100} step={10} /> </Column> </Host> ); }

API

import { Slider } from '@expo/ui';

Component

Slider

Android
iOS
Web

Type: React.Element<SliderProps>

A control for selecting a value from a continuous or stepped range.

Props for the Slider component.

SliderProps

disabled

Android
iOS
Web
Optional • Type: boolean

Whether the slider is disabled. Disabled sliders do not respond to user interaction.

max

Android
iOS
Web
Optional • Type: number • Default: 1

Maximum value of the slider range.

min

Android
iOS
Web
Optional • Type: number • Default: 0

Minimum value of the slider range.

modifiers

Android
iOS
Web
Optional • Type: ModifierConfig[]

Platform-specific modifier escape hatch. Pass an array of modifier configs from @expo/ui/swift-ui/modifiers or @expo/ui/jetpack-compose/modifiers.

onValueChange

Android
iOS
Web
Type: (value: number) => void

Called when the user changes the slider value.

step

Android
iOS
Web
Optional • Type: number

Increment size. For example, step={10} with min={0} and max={100} produces values 0, 10, 20, …, 100.

testID

Android
iOS
Web
Optional • Type: string

Identifier used to locate the component in end-to-end tests.

value

Android
iOS
Web
Type: number

Current value of the slider.