Slider
bileşeni, kullanıcıların bir dizi değer arasından seçim yapmasına olanak tanır. Kullanıcının aşağıdakileri yapmasına izin vermek için kaydırma çubuğunu kullanabilirsiniz:
- Ses ve parlaklık gibi bir dizi değer kullanan ayarları ayarlayın.
- Fiyat aralığı belirlerken olduğu gibi bir grafikteki verileri filtreleyin.
- Kullanıcı girişi (ör. yorumda puan belirleme).
Kaydırma çubuğunda bir kanal, kaydırma çubuğu ucu, değer etiketi ve onay işaretleri bulunur:
- Kanal: Kanal, kaydırıcıya atanan değer aralığını gösteren yatay çubuktur.
- İşaretçi: İşaretçi, kaydırma çubuğundaki sürüklenebilir bir kontrol öğesidir. Kullanıcının, kanal tarafından tanımlanan aralıktaki belirli bir değeri seçmesine olanak tanır.
- Onay işaretleri: Onay işaretleri, kaydırma çubuğunun yolunda görünen isteğe bağlı görsel işaretçiler veya göstergelerdir.
Temel uygulama
Tam API tanımı için Slider
referansına bakın. Slider
bileşeninin temel parametrelerinden bazıları şunlardır:
value
: Kaydırma çubuğunun mevcut değeri.onValueChange
: Değer her değiştiğinde çağrılan bir lambda.enabled
: Kullanıcının kaydırma çubuklarıyla etkileşim kurup kuramayacağını belirten bir boole değeridir.
Aşağıdaki örnekte basit bir kaydırma çubuğu gösterilmektedir. Bu sayede kullanıcı 0.0
ile 1.0
arasında bir değer seçebilir. Kullanıcı bu aralıktaki herhangi bir değeri seçebileceğinden kaydırma çubuğu sürekli olur.
@Preview @Composable fun SliderMinimalExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it } ) Text(text = sliderPosition.toString()) } }
Bu uygulama aşağıdaki gibi görünür:
Gelişmiş uygulama
Daha karmaşık bir kaydırma çubuğu uygularken aşağıdaki parametreleri de kullanabilirsiniz.
colors
: Kaydırma çubuğunun renklerini kontrol etmenize olanak tanıyan birSliderColors
örneği.valueRange
: Kaydırma çubuğunun alabileceği değer aralığı.steps
: Kaydırma çubuğundaki, başparmağın takıldığı çentik sayısı.
Aşağıdaki snippet, 0.0
ile 50.0
arasında bir aralığa sahip üç adımlı bir kaydırma çubuğu uygular. Başparmak her adıma sabitlendiğinden bu kaydırma çubuğu ayrıdır.
@Preview @Composable fun SliderAdvancedExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it }, colors = SliderDefaults.colors( thumbColor = MaterialTheme.colorScheme.secondary, activeTrackColor = MaterialTheme.colorScheme.secondary, inactiveTrackColor = MaterialTheme.colorScheme.secondaryContainer, ), steps = 3, valueRange = 0f..50f ) Text(text = sliderPosition.toString()) } }
Uygulama şu şekilde görünür:
Aralık kaydırma çubuğu
Özel RangeSlider
bileşenini de kullanabilirsiniz. Bu sayede kullanıcı iki değer seçebilir. Bu, kullanıcının minimum ve maksimum fiyat seçmek istediği durumlarda yararlı olabilir.
Aşağıdaki örnek, sürekli aralık kaydırma çubuğunun nispeten basit bir örneğidir.
@Preview @Composable fun RangeSliderExample() { var sliderPosition by remember { mutableStateOf(0f..100f) } Column { RangeSlider( value = sliderPosition, steps = 5, onValueChange = { range -> sliderPosition = range }, valueRange = 0f..100f, onValueChangeFinished = { // launch some business logic update with the state you hold // viewModel.updateSelectedSliderValue(sliderPosition) }, ) Text(text = sliderPosition.toString()) } }