لوحة عرض دوّارة

تعرض لوحة العرض الدوّارة قائمة قابلة للتمرير السريع تتضمّن عناصر تتكيّف ديناميكيًا استنادًا إلى حجم النافذة. استخدِم لوحات العرض الدوّارة لعرض مجموعة من المحتوى ذي الصلة. تُبرز عناصر لوحة العرض الدوّارة العناصر المرئية، ولكن يمكن أن تتضمّن أيضًا نصًا موجزًا يتكيّف مع حجم العنصر.

تتوفّر أربعة تصاميم للوحات العرض الدوّارة لتناسب حالات الاستخدام المختلفة:

  • التصفّح المتعدّد: يتضمّن سلعًا بأحجام مختلفة. يُنصح باستخدامها لتصفّح العديد من العناصر في الوقت نفسه، مثل الصور.
  • غير محتوية: تحتوي على عناصر بحجم واحد وتتجاوز حافة الشاشة. يمكن تخصيصها لعرض المزيد من النص أو عناصر أخرى من واجهة المستخدم أعلى أو أسفل كل عنصر.
  • الجزء الرئيسي: يعرض صورة كبيرة واحدة للتركيز عليها، ويقدّم نظرة خاطفة على المحتوى التالي من خلال عنصر صغير. يُنصح باستخدامه لتسليط الضوء على المحتوى الذي تريد التركيز عليه، مثل الصور المصغّرة للأفلام أو البرامج التلفزيونية.
  • ملء الشاشة: يعرض عنصرًا كبيرًا واحدًا من الحافة إلى الحافة في كل مرة، ويمكنك الانتقال للأعلى أو للأسفل. يُنصح به للمحتوى الذي يكون ارتفاعه أكبر من عرضه.
نوعان من لوحات العرض الدوّارة، أحدهما غير مضمّن والآخر بملء الشاشة، يظهران بجانب بعضهما البعض. يحتوي نوع لوحة العرض الدوّارة غير المضمّنة على عناصر متعدّدة، بينما يحتوي نوع ملء الشاشة على عنصر واحد يشغل الشاشة.
الشكل 1. أنواع منصات العرض الدوّارة غير المضمّنة (1) وملء الشاشة (2)

توضّح لك هذه الصفحة كيفية تنفيذ تنسيقات العرض المتعدد وتنسيقات لوحات العرض الدوّارة غير المضمّنة. يمكنك الاطّلاع على إرشادات Material 3 الخاصة بلوحات العرض الدوّارة للحصول على مزيد من المعلومات حول أنواع التنسيقات.

مساحة عرض واجهة برمجة التطبيقات

لتنفيذ ميزة التصفّح المتعدد ولوحات العرض الدوّارة غير المضمّنة، استخدِم العنصرَين القابلَين للإنشاء HorizontalMultiBrowseCarousel وHorizontalUncontainedCarousel. تتشارك العناصر القابلة للإنشاء هذه المَعلمات الرئيسية التالية:

  • state: مثيل CarouselState يدير فهرس العنصر الحالي وموضع التمرير. أنشئ هذه الحالة باستخدام rememberCarouselState { itemCount }، حيث itemCount هو إجمالي عدد العناصر في لوحة العرض الدوّارة.
  • itemSpacing: تحدّد هذه السمة مقدار المساحة الفارغة بين العناصر المتجاورة في لوحة العرض الدوّارة.
  • contentPadding: يطبّق مساحة متروكة حول مساحة المحتوى في لوحة العرض الدوّارة. استخدِم هذه السمة لإضافة مساحة قبل العنصر الأول أو بعد العنصر الأخير، أو لتوفير هوامش للعناصر ضمن المنطقة القابلة للتمرير.
  • content: دالة قابلة للإنشاء تستقبل فهرسًا صحيحًا. استخدِم دالة lambda هذه لتحديد واجهة المستخدم لكل عنصر في لوحة العرض الدوّارة استنادًا إلى الفهرس الخاص به.

تختلف هذه العناصر القابلة للإنشاء في طريقة تحديد حجم العناصر:

  • itemWidth (لـ HorizontalUncontainedCarousel): تحدّد هذه السمة العرض الدقيق لكل عنصر في لوحة عرض دوّارة غير مضمّنة.
  • preferredItemWidth (لـ HorizontalMultiBrowseCarousel): تقترح هذه السمة العرض المثالي للعناصر في لوحة عرض دوّارة تتضمّن عدة خيارات تصفّح، ما يتيح للمكوّن عرض عناصر متعددة إذا سمحت المساحة بذلك.

مثال: رف دائري متعدد الاستعراضات

تنفّذ هذه المقتطفة لوحة عرض دوّارة متعددة الاستعراضات:

النقاط الرئيسية حول الرمز

  • تحدّد هذه السمة CarouselItem فئة بيانات، وهي تنظّم البيانات لكل عنصر في لوحة العرض الدوّارة.
  • تنشئ هذه السمة List من عناصر CarouselItem وتتذكّرها، ويتم ملؤها بموارد الصور والأوصاف.
  • يستخدم الدالة القابلة للإنشاء HorizontalMultiBrowseCarousel المصمَّمة لعرض عناصر متعددة في لوحة عرض دوّارة.
    • يتم ضبط حالة لوحة العرض الدوّارة في البداية باستخدام rememberCarouselState، الذي يتم إعطاؤه إجمالي عدد العناصر.
    • تحتوي العناصر على preferredItemWidth (هنا، 186.dp)، ما يشير إلى عرض مثالي لكل عنصر. يستخدم هذا الإعداد لتحديد عدد العناصر التي يمكن أن تظهر على الشاشة في الوقت نفسه.
    • تضيف المَعلمة itemSpacing فجوة صغيرة بين العناصر.
    • تكرّر دالة lambda الأخيرة في HorizontalMultiBrowseCarousel CarouselItems. في كل تكرار، يتم استرداد العنصر في الفهرس i وعرض عنصر Image قابل للإنشاء.
    • تطبِّق Modifier.maskClip(MaterialTheme.shapes.extraLarge) قناع شكل محدّدًا مسبقًا على كل صورة، ما يمنحها زوايا مستديرة.
    • يقدّم contentDescription وصفًا مناسبًا لذوي الاحتياجات الخاصة عن الصورة.

النتيجة

تعرض الصورة التالية النتيجة من المقتطف السابق:

منصّة عرض بعناصر متغيّرة تتضمّن 3 صور، تظهر اثنتان منها بالكامل وتظهر واحدة جزئيًا خارج الشاشة.
الشكل 2. لوحة عرض دوّارة متعددة التصفّح، مع قصّ آخر عنصر

مثال: لوحة عرض دوّارة غير مضمّنة

ينفّذ المقتطف التالي لوحة عرض دوّارة غير مضمّنة:

النقاط الرئيسية حول الرمز

  • ينشئ العنصر القابل للإنشاء HorizontalUncontainedCarousel تخطيط الرف الدائري.
    • تحدّد المَعلمة itemWidth عرضًا ثابتًا لكل عنصر في لوحة العرض الدوّارة.

النتيجة

تعرض الصورة التالية النتيجة من المقتطف السابق:

لوحة عرض دوّارة غير مضمّنة تحتوي على 3 عناصر يظهر العنصر الأخير بشكل جزئي، ولكن بدون قص.
الشكل 3. لوحة عرض دوّارة غير مضمّنة، حيث لا يتم اقتطاع العنصر الأخير في لوحة العرض الدوّارة