أزرار التبديل في Glimmer من Jetpack Compose

أجهزة XR المشمولة
تساعدك هذه الإرشادات في إنشاء تجارب لهذه الأنواع من أجهزة XR.
نظارات العرض

في Jetpack Compose Glimmer، يكون ToggleButton مكوّنًا تفاعليًا يغيّر مظهره استنادًا إلى حالة محدّدة. تم تحسين أزرار الإيقاف/التفعيل لنظارات بشاشة عرض من أجل توفير انتقالات مرئية واضحة في الشكل واللون. تشير هذه الانتقالات إلى ما إذا كان إجراء أو إعداد معيّنًا مفعّلاً.

استخدِم أزرار الإيقاف/التفعيل لعرض الإجراءات التي يمكن تفعيلها أو إيقافها. على عكس أزرار الإيقاف/التفعيل التي تعرض الرموز فقط، يعرض زر الإيقاف/التفعيل محتوى نصيًا بشكل أساسي، على الرغم من أنّه يتيح استخدام خانات اختيارية للرموز من أجل توفير سياق إضافي.

بالنسبة إلى حالات الاستخدام الأخرى، تتوفّر أيضًا الأزرار العادية وأزرار الرموز.

الشكل 1. مثال على زر إيقاف/تفعيل في Jetpack Compose Glimmer يُستخدَم لإجراءَي التشغيل والإيقاف المؤقت في تنسيق واجهة مستخدم.

علم التشريح

يتألّف زر الإيقاف/التفعيل من حاوية تتغيّر بين الحالات وتصنيف يتضمّن رموزًا اختيارية.

الجزء الوصف

الحاوية

تتحرّك بين شكل دائري (غير محدّد) ومستطيل مستدير (محدّد).

التصنيف

عادةً ما يكون مكوّن Text قابل للإنشاء.

الرموز (اختيارية)

الخانات في المقدّمة أو المؤخّرة التي يمكن أن تختلف استنادًا إلى الحالة.

الأحجام

على غرار الأزرار العادية، تتيح أزرار الإيقاف/التفعيل استخدام نوعَين من الأحجام:

الحجم الحد الأدنى للارتفاع سياسة الاستخدام التلقائية

متوسط

‫48 dp

الحجم التفاعلي التلقائي

كبير

‫72 dp

أزرار الإيقاف/التفعيل الأساسية أو التي يتم التركيز عليها بشكل كبير

الإعدادات التلقائية لأزرار الإيقاف/التفعيل

تستخدم أزرار الإيقاف/التفعيل بشكل تلقائي ToggleButtonDefaults.animateShape. يؤدي ذلك إلى إنشاء انتقال سلس بين الحالتَين التاليتَين:

يدير الصف ToggleButtonColors دقة الألوان للحالتَين التاليتَين:

صورة متحركة

تستخدم أزرار الإيقاف/التفعيل الإعدادات التلقائية التالية للصور المتحركة:

  • animateShape: يوفّر Shape يقدّر أحجام الزوايا باستخدام مواصفات تحريك ارتدادي (stiffness = 600f).
  • colors: دالة مصنع لتخصيص ألوان الخلفية والمحتوى لكلتا الحالتَين
  • CheckedShape: RoundedCornerShape(20.dp) ثابت يُستخدَم للحالة المحدّدة
  • contentPadding: يتم اكتسابه من ButtonDefaults.contentPadding.

مثال: زر إيقاف/تفعيل

تنشئ التعليمة البرمجية التالية زر إيقاف/تفعيل أساسيًا:

@Composable
fun ToggleButtonSample() {
    var checked by remember { mutableStateOf(false) }
    val text = if (checked) "Toggle on" else "Toggle off"

    ToggleButton(
        checked = checked,
        onCheckedChange = { checked = it }
    ) {
        Text(text)
    }
}

مثال: زر إيقاف/تفعيل مع رمز في المقدّمة

تنشئ التعليمة البرمجية التالية زر إيقاف/تفعيل مع رمز في المقدّمة:

@Composable
fun ToggleButtonWithLeadingIconSample() {
    var checked by remember { mutableStateOf(false) }

    ToggleButton(
        checked = checked,
        leadingIcon = {
            Icon(
                if (checked) FavoriteIcon else OutlinedFavoriteIcon,
                contentDescription = "Toggle favorite"
            )
        },
        onCheckedChange = { checked = it }
    ) {
        Text(if (checked) "On" else "Off")
    }
}