تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتيح العنصر القابل للإنشاء Slider للمستخدمين إجراء اختيارات من مجموعة من القيم. يمكنك استخدام شريط تمرير للسماح للمستخدم بإجراء ما يلي:
اضبط الإعدادات التي تستخدم نطاقًا من القيم، مثل مستوى الصوت والسطوع.
فلترة البيانات في رسم بياني، كما هو الحال عند ضبط نطاق سعري
إدخالات المستخدمين، مثل تحديد تقييم في مراجعة
يحتوي شريط التمرير على مسار ومقبض وتصنيف القيمة وعلامات التجزئة:
المسار: المسار هو الشريط الأفقي الذي يمثّل نطاق القيم التي يمكن أن يتخذها شريط التمرير.
زر التحكّم: زر التحكّم هو عنصر تحكّم قابل للسحب على شريط التمرير يتيح للمستخدم اختيار قيمة معيّنة ضمن النطاق الذي يحدّده المسار.
علامات التجزئة: علامات التجزئة هي علامات أو مؤشرات مرئية اختيارية تظهر على طول مسار شريط التمرير.
الشكل 1. تمثّل هذه السمة عملية تنفيذ لشريط تمرير.
التنفيذ الأساسي
اطّلِع على مرجع Slider للحصول على تعريف كامل لواجهة برمجة التطبيقات. في ما يلي بعض المَعلمات الرئيسية للدالة البرمجية القابلة للإنشاء Slider:
value: القيمة الحالية لشريط التمرير
onValueChange: دالة lambda يتم استدعاؤها في كل مرة تتغير فيها القيمة.
استبدِل enabled بقيمة منطقية تشير إلى ما إذا كان بإمكان المستخدم التفاعل مع شريط التمرير.
المثال التالي هو شريط تمرير بسيط. التي تتيح للمستخدم اختيار قيمة من 0.0 إلى 1.0. بما أنّ المستخدم يمكنه اختيار أي قيمة في هذا النطاق، يكون شريط التمرير متصلاً.
الشكل 3. شريط تمرير يتضمّن خطوات ونطاق قيم محدّدًا
شريط التمرير للنطاق
يمكنك أيضًا استخدام العنصر القابل للإنشاء RangeSlider المخصّص. يسمح ذلك للمستخدم باختيار قيمتَين. ويمكن أن يكون ذلك مفيدًا في حالات مثل عندما يريد المستخدم اختيار حد أدنى وأقصى للسعر.
المثال التالي هو مثال بسيط نسبيًا على شريط تمرير بنطاق متواصل.
@Preview@ComposablefunRangeSliderExample(){varsliderPositionbyremember{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())}}
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-08-30 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-30 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["The [`Slider`](/reference/kotlin/androidx/compose/material3/package-summary#Slider(androidx.compose.material3.SliderState,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.material3.SliderColors,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1,kotlin.Function1)) composable allows users to make selections from a range of\nvalues. You might use a slider to let the user do the following:\n\n- Adjust settings that use a range of values, such as volume, and brightness.\n- Filter data in a graph, as when setting a price range.\n- User input, like setting a rating in a review.\n\nThe slider contains a track, thumb, value label, and tick marks:\n\n- **Track**: The track is the horizontal bar that represents the range of values the slider can take.\n- **Thumb**: The thumb is a draggable control element on the slider that allows the user to select a specific value within the range defined by the track.\n- **Tick marks**: Tick marks are optional visual markers or indicators that appear along the track of the slider.\n\n**Figure 1.** An implementation of a slider.\n\nBasic implementation\n\nSee the [`Slider`](/reference/kotlin/androidx/compose/material3/package-summary#Slider(androidx.compose.material3.SliderState,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.compose.material3.SliderColors,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1,kotlin.Function1)) reference for a full API definition. Some of the key\nparameters for the `Slider` composable are the following:\n\n- **`value`**: The current value of the slider.\n- **`onValueChange`**: A lambda that gets called every time the value is changed.\n- **`enabled`**: A boolean value that indicates if the user can interact with the slider.\n\nThe following example is a straightforward slider. That allows the user to\nselect a value from `0.0` to `1.0`. Because the user can select any value in\nthat range, the slider is *continuous*.\n\n\n```kotlin\n@Preview\n@Composable\nfun SliderMinimalExample() {\n var sliderPosition by remember { mutableFloatStateOf(0f) }\n Column {\n Slider(\n value = sliderPosition,\n onValueChange = { sliderPosition = it }\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L59-L70\n```\n\n\u003cbr /\u003e\n\nThis implementation appears as follows:\n**Figure 2.** A basic implementation of a slider.\n\nAdvanced implementation\n\nWhen implementing a more complex slider, you can additionally make use of the\nfollowing parameters.\n\n- **`colors`** : An instance of `SliderColors` that lets you control the colors of the slider.\n- **`valueRange`**: The range of values that the slider can take.\n- **`steps`**: The number of notches on the slider to which the thumb snaps.\n\nThe following snippet implements a slider that has three steps, with a range\nfrom `0.0` to `50.0`. Because the thumb snaps to each step, this slider is\n*discrete*.\n\n\n```kotlin\n@Preview\n@Composable\nfun SliderAdvancedExample() {\n var sliderPosition by remember { mutableFloatStateOf(0f) }\n Column {\n Slider(\n value = sliderPosition,\n onValueChange = { sliderPosition = it },\n colors = SliderDefaults.colors(\n thumbColor = MaterialTheme.colorScheme.secondary,\n activeTrackColor = MaterialTheme.colorScheme.secondary,\n inactiveTrackColor = MaterialTheme.colorScheme.secondaryContainer,\n ),\n steps = 3,\n valueRange = 0f..50f\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L74-L92\n```\n\n\u003cbr /\u003e\n\nThe implementation appears as follows:\n**Figure 3.** A slider with steps and a set value range. **Note:** The very beginning and end of a slider count as \"steps\". In the preceding example where the range is `0f..50f` and the number of `steps` is `3`, each interval along the range is `12.5` because the beginning and end of the slider are also intervals the user can select.\n| **Note:** You can also pass `Slider` a `thumb` and `track` composable to more thoroughly customize the appearance of the component.\n\nRange slider\n\nYou can also use the dedicated `RangeSlider` composable. This allows the user to\nselect two values. This can be useful in cases such as when the user wishes to\nselect a minimum and maximum price.\n\nThe following example is a relatively straightforward example of a continuous\nrange slider.\n\n\n```kotlin\n@Preview\n@Composable\nfun RangeSliderExample() {\n var sliderPosition by remember { mutableStateOf(0f..100f) }\n Column {\n RangeSlider(\n value = sliderPosition,\n steps = 5,\n onValueChange = { range -\u003e sliderPosition = range },\n valueRange = 0f..100f,\n onValueChangeFinished = {\n // launch some business logic update with the state you hold\n // viewModel.updateSelectedSliderValue(sliderPosition)\n },\n )\n Text(text = sliderPosition.toString())\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/compose/snippets/src/main/java/com/example/compose/snippets/components/Slider.kt#L96-L113\n```\n\n\u003cbr /\u003e\n\n**Figure 4.** An implementation of a range slider.\n\nAdditional resources\n\n- [Material UI docs](https://m3.material.io/components/sliders/overview)"]]