确保引入了正确的库:implementation 'com.google.android.material:material:1.0.0'
在xml布局文件中添加Slider控件
在Java文件中设置OnSliderTouchListener监听器,并实现其对应的onStartTrackingTouch()和onStopTrackingTouch()方法 Slider slider = findViewById(R.id.slider); slider.setOnSliderTouchListener(new Slider.OnSliderTouchListener() { @Override public void onStartTrackingTouch(@NonNull Slider slider) { // do something }
@Override
public void onStopTrackingTouch(@NonNull Slider slider) {
// do something
}
});
在Activity或Fragment的onCreate()方法中设置Slider的值和其他属性 Slider slider = findViewById(R.id.slider); slider.setValue(50); // 设置默认值 slider.setLabelFormatter(new LabelFormatter() { @NonNull @Override public String getFormattedValue(float value) { return value + "kg"; // 显示单位 } }); // 设置显示格式 slider.addOnChangeListener(new OnChangeListener() { @Override public void onValueChange(@NonNull Slider slider, float value, boolean fromUser) { // do something } }); // 设置数值改变监听器
确保在滑块点击时不会与父视图(如ScrollView)发生冲突,可以在xml布局文件的Slider控件中添加以下属性: app:touchAnchorId="@+id/slider" app:touchAnchorSide="top" 这将确保滑块的点击事件优先于父视图的滑动事件。