滑块 (Slider)
源:Sliders
滑块允许用户从一系列值中进行选择。M3 提供了三种变体。

- Standard (标准型): 单个控制滑块。
- Centered (居中型): 以零为中心的双向滑块。
- Range (范围型): 包含两个控制点,用于选择区间。
核心结构 (Anatomy)

- 数值指示器 (Tooltip) | 2. 停止点 (Stops) | 3. 活动轨道 | 4. 手柄 (Handle) | 5. 非活动轨道
代码实现
1. 基础滑块 (Slider)
xml
<com.google.android.material.slider.Slider
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:valueFrom="0.0"
android:valueTo="100.0"
android:stepSize="10.0" />kotlin
slider.addOnChangeListener { slider, value, fromUser ->
// 响应值改变
}2. 范围滑块 (RangeSlider)
xml
<com.google.android.material.slider.RangeSlider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:valueFrom="0.0"
android:valueTo="100.0"
app:values="@array/initial_values" />核心属性
| 属性 | 描述 | 默认值 |
|---|---|---|
app:trackHeight | 轨道厚度 | 16dp |
app:thumbWidth | 手柄宽度 | 4dp |
app:labelBehavior | 数值气泡行为 (floating, visible, gone) | floating |
格式化数值 (LabelFormatter)
你可以自定义气泡中显示的文本格式(如:将 1500.0 转换为 $1.5k)。
kotlin
slider.setLabelFormatter { value ->
NumberFormat.getCurrencyInstance().format(value.toDouble())
}