Reference version

This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 56).

滑块

一个与 @react-native-community/slider 兼容的滑块。

Android
iOS
Web
Included in Expo Go

For the complete documentation index, see llms.txt. Use this file to discover all available pages.

一个与 @react-native-community/slider API 兼容的 Slider 组件。它在 Android 上使用 Material 3 Slider,在 iOS 上使用 SwiftUI Slider,在 Web 上使用原生的 <input type="range"> 元素。

在底层,这个组件封装了平台特定的 @expo/ui 基础组件:

如果你需要更底层的控制,请直接使用这些基础组件。

安装

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.

@react-native-community/slider 迁移

  • 将导入从 import Slider from '@react-native-community/slider' 更新为 import Slider from '@expo/ui/community/slider'
  • onSlidingStartonSlidingCompletetapToSeekStepMarkerrenderStepNumberthumbImageminimumTrackImagemaximumTrackImagetrackImageaccessibilityUnitsaccessibilityIncrementstestIDref.updateValue 目前还不受支持。
  • 在 iOS 上,maximumTrackTintColorthumbTintColor 不会产生视觉效果——SwiftUI 的 Slider 只暴露最小(激活)轨道的颜色。minimumTrackTintColor 在两个平台上都可用。

基本用法

SliderExample.tsx
import { useState } from 'react'; import { Text, View } from 'react-native'; import Slider from '@expo/ui/community/slider'; export default function SliderExample() { const [value, setValue] = useState(0.5); return ( <View> <Slider value={value} onValueChange={setValue} /> <Text>值: {value.toFixed(3)}</Text> </View> ); }

API

import Slider from '@expo/ui/community/slider';

Component

Slider

Android
iOS
Web

Type: React.Element<SliderProps>

A drop-in replacement for @react-native-community/slider. Renders a SwiftUI Slider on iOS, a Material 3 Slider on Android, and a native HTML <input type="range"> on web.

Props for the Slider community drop-in component. Compatible with @react-native-community/slider.

SliderProps

disabled

Android
iOS
Web
Optional • Type: boolean • Default: false

If true the user won't be able to move the slider.

inverted

Android
iOS
Web
Optional • Type: boolean • Default: false

Reverses the direction of the slider so the maximum value is on the left and the minimum value is on the right.

lowerLimit

Android
iOS
Web
Optional • Type: number

The lower limit value of the slider. The user won't be able to slide below this limit.

maximumTrackTintColor

Android
Optional • Type: ColorValue

Color of the track to the right of the thumb.

maximumValue

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

Initial maximum value of the slider.

minimumTrackTintColor

Android
iOS
Web
Optional • Type: ColorValue

Color of the track to the left of the thumb.

minimumValue

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

Initial minimum value of the slider.

onValueChange

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

Callback continuously called while the user is dragging the slider.

step

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

Step value of the slider. The value should be between 0 and (maximumValue - minimumValue). A value of 0 means continuous (no snapping).

style

Android
iOS
Web
Optional • Type: StyleProp<ViewStyle>

Used to style and layout the Slider.

thumbTintColor

Android
Optional • Type: ColorValue

Color of the thumb.

upperLimit

Android
iOS
Web
Optional • Type: number

The upper limit value of the slider. The user won't be able to slide above this limit.

value

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

Initial / current value of the slider. Behaves like the community lib: passing a new value updates the thumb, but live drag emits via onValueChange without needing external state.