في Jetpack Compose Glimmer، يكون ToggleButton مكوّنًا تفاعليًا
يغيّر مظهره استنادًا إلى حالة محدّدة. تم تحسين أزرار الإيقاف/التفعيل لنظارات العرض من أجل توفير انتقالات مرئية واضحة في الشكل واللون. تشير هذه الانتقالات إلى أنّ إجراءً أو إعدادًا معيّنًا نشط.
استخدِم أزرار الإيقاف/التفعيل لعرض الإجراءات التي يمكن تفعيلها أو إيقافها. على عكس أزرار الإيقاف/التفعيل التي تعرض الرموز فقط، يعرض زر الإيقاف/التفعيل محتوى نصيًا في المقام الأول، على الرغم من أنّه يتيح استخدام خانات اختيارية للرموز من أجل توفير سياق إضافي.
بالنسبة إلى حالات الاستخدام الأخرى، تتوفّر أيضًا الأزرار العادية وأزرار الرموز.
علم التشريح
يتألّف زر الإيقاف/التفعيل من حاوية تتغيّر بين الحالات وتصنيف يتضمّن رموزًا اختيارية.
| الجزء | الوصف |
|---|---|
الحاوية |
تتحرّك بين شكل دائري (غير محدّد) ومستطيل مستدير (محدّد). |
التصنيف |
عادةً ما يكون مكوّن |
الرموز (اختيارية) |
الخانات في المقدّمة أو المؤخّرة التي يمكن أن تختلف استنادًا إلى الحالة |
الأحجام
على غرار الأزرار العادية، تتيح أزرار الإيقاف/التفعيل نوعَين من الأحجام:
| الحجم | الحد الأدنى للارتفاع | سياسة الاستخدام التلقائية |
|---|---|---|
متوسط |
48dp |
الحجم التفاعلي التلقائي |
كبير |
72dp |
أزرار الإيقاف/التفعيل الأساسية أو ذات الأهمية الكبيرة |
الإعدادات التلقائية لأزرار الإيقاف/التفعيل
تستخدم أزرار الإيقاف/التفعيل تلقائيًا ToggleButtonDefaults.animateShape. يؤدي ذلك إلى إنشاء انتقال سلس بين الحالتَين التاليتَين:
- غير محدّد:
GlimmerTheme.shapes.large(عادةً ما يكونCircleShape) - محدّد:
ToggleButtonDefaults.CheckedShape(RoundedCornerShapeمع زوايا20.dp)
يدير الصف ToggleButtonColors دقة الألوان للحالتَين التاليتَين:
- غير محدّد: يتم ضبطه تلقائيًا على
GlimmerTheme.colors.surface. - محدّد: يتم ضبطه تلقائيًا على
GlimmerTheme.colors.surface.
صورة متحركة
تستخدم أزرار الإيقاف/التفعيل الإعدادات التلقائية التالية للصور المتحركة:
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) } val text = if (checked) "Toggle on" else "Toggle off" ToggleButton( checked = checked, leadingIcon = { Icon(if (checked) FavoriteIcon else OutlinedFavoriteIcon, "Localized description") }, onCheckedChange = { checked = it }, ) { Text(text) } }