הרכיב הניתן לקישור Slider
מאפשר למשתמשים לבחור מתוך מגוון ערכים. אפשר להשתמש בפס ההזזה כדי לאפשר למשתמש לבצע את הפעולות הבאות:
- לשנות הגדרות שמשתמשות בטווח ערכים, כמו עוצמת קול ובהירות.
- לסנן נתונים בתרשים, כמו כשמגדירים טווח מחירים.
- קלט מהמשתמשים, כמו הגדרת דירוג בביקורת.
פס ההזזה מכיל מסלול, סמן, תווית ערך וסימני וי:
- טראק: הטראק הוא העמודה האופקית שמייצגת את טווח הערכים שאפשר לבחור בפס ההזזה.
- אגודל: האגודל הוא רכיב בקרה שניתן לגרירה בפס ההזזה, שמאפשר למשתמש לבחור ערך ספציפי בטווח שמוגדר על ידי המסלול.
- סימוני וי (V): סימוני וי הם סמנים או אינדיקטורים חזותיים אופציונליים שמופיעים לאורך המסלול של פס ההזזה.

הטמעה בסיסית
להגדרה המלאה של ה-API, אפשר לעיין במסמך העזרה של Slider
. אלה כמה מהפרמטרים העיקריים של ה-composable Slider
:
value
: הערך הנוכחי של פס ההזזה.onValueChange
: פונקציית lambda שמופעל בכל פעם שהערך משתנה.enabled
: ערך בוליאני שמציין אם המשתמש יכול לבצע פעולות על פס ההזזה.
הדוגמה הבאה היא פס הזזה פשוט. כך המשתמש יכול לבחור ערך מ-0.0
עד 1.0
. מכיוון שהמשתמש יכול לבחור כל ערך בטווח הזה, המחוון הוא רציף.
@Preview @Composable fun SliderMinimalExample() { var sliderPosition by remember { mutableFloatStateOf(0f) } Column { Slider( value = sliderPosition, onValueChange = { sliderPosition = it } ) Text(text = sliderPosition.toString()) } }
ההטמעה הזו נראית כך:

הטמעה מתקדמת
כשמטמיעים פס מחליק מורכב יותר, אפשר להשתמש גם בפרמטרים הבאים.
colors
: מופע שלSliderColors
שמאפשר לשלוט בצבעים של פס ההזזה.valueRange
: טווח הערכים שאפשר לבחור בסרגל ההזזה.steps
: מספר החריצים בסרגל ההזזה שאליהם נצמדת האגודל.
קטע הקוד הבא מיישם פס מחליק עם שלושה שלבים, בטווח מ-0.0
ל-50.0
. מכיוון שהאגודל נצמד לכל שלב, פס ההזזה הזה הוא מנותק.
@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()) } }
כך ייראה היישום:

פס ההזזה של הטווח
אפשר גם להשתמש ב-composable הייעודי RangeSlider
. כך המשתמש יכול לבחור שני ערכים. האפשרות הזו יכולה להיות שימושית במקרים שבהם המשתמש רוצה לבחור מחיר מינימום ומקסימום.
הדוגמה הבאה היא דוגמה פשוטה יחסית לפס ההזזה של טווח רציף.
@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()) } }
