شريط التمرير

تسمح العناصر القابلة للتجميع Slider للمستخدمين بإجراء اختيارات من مجموعة من القيم. يمكنك استخدام شريط تمرير للسماح للمستخدم بإجراء ما يلي:

  • اضبط الإعدادات التي تستخدم نطاقًا من القيم، مثل مستوى الصوت والسطوع.
  • فلترة البيانات في رسم بياني، كما هو الحال عند ضبط نطاق أسعار
  • إدخال المستخدم، مثل ضبط تقييم في مراجعة

يحتوي شريط التمرير على مسار ومؤشر وعلامة قيمة وعلامات علامة:

  • المسار: المسار هو الشريط الأفقي الذي يمثّل نطاق القيم التي يمكن أن يأخذها شريط التمرير.
  • المؤشر: المؤشر هو عنصر تحكّم قابل للسحب على شريط التمرير يسمح للمستخدم باختيار قيمة معيّنة ضمن النطاق الذي يحدّده المسار.
  • علامات الاختيار: علامات الاختيار هي علامات أو مؤشرات مرئية اختيارية تظهر على طول مسار شريط التمرير.
شريط تمرير يتضمّن زرّ تمرير ومسارًا وعلامات
الشكل 1. مثال على شريط تمرير

التنفيذ الأساسي

اطّلِع على مرجع Slider للحصول على تعريف كامل لواجهة برمجة التطبيقات. في ما يلي بعض الparameters الرئيسية للعنصر القابل للتجميع 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())
    }
}

تظهر عملية التنفيذ هذه على النحو التالي:

مكوّن شريط تمرير تم اختيار قيمة له تبلغ ثلاثة أرباع المسار تقريبًا
الشكل 2. تنفيذ أساسي لشريط التمرير

التنفيذ المتقدّم

عند تنفيذ شريط تمرير أكثر تعقيدًا، يمكنك أيضًا الاستفادة من المَعلمات التالية.

  • 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())
    }
}

يظهر التنفيذ على النحو التالي:

اكتب النص البديل هنا.
الشكل 3. شريط تمرير يتضمّن خطوات ونطاقًا محدّدًا من القيم

شريط تمرير النطاق

يمكنك أيضًا استخدام العنصر القابل للتجميع 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())
    }
}

مكوّن شريط تمرير النطاق مع اختيار قيمتَين يعرض التصنيف الحدّ الأقصى والحدّ الأدنى للاختيار.
الشكل 4. مثال على شريط تمرير النطاق

مصادر إضافية