إتاحة وضع النوافذ على سطح المكتب

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

في الشكل 1، يمكنك رؤية تنظيم الشاشة مع نافذة سطح المكتب مفعّلة. ملاحظات:

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

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

عندما يتم فتح تطبيق في نافذة سطح المكتب، يتم فتح التطبيقات الأخرى في نوافذ سطح المكتب كما أيضًا.

الشكل 2. اضغط مع الاستمرار على مقبض نافذة التطبيق واسحبه للدخول إلى نافذة سطح المكتب.

يمكن للمستخدمين أيضًا تفعيل وضع "نوافذ سطح المكتب" من القائمة التي تظهر أسفل مقبض النافذة عند النقر عليه أو النقر عليه أو استخدام اختصار لوحة المفاتيح مفتاح Meta (Windows أو Command أو Search) + Ctrl + Down.

يخرج المستخدمون من نافذة سطح المكتب عن طريق إغلاق جميع النوافذ النشطة أو عن طريق جلب مقبض النافذة أعلى نافذة سطح المكتب وسحب التطبيق إلى الأعلى عرض الشاشة. يؤدي أيضًا اختصار لوحة المفاتيح Meta + H إلى الخروج النوافذ في سطح المكتب وتشغيل التطبيقات بملء الشاشة مرة أخرى.

للعودة إلى وضع النوافذ على الكمبيوتر المكتبي، انقر على مربّع مساحة سطح المكتب في شاشة التطبيقات المستخدَمة مؤخرًا.

إمكانية إعادة الحجم ووضع التوافق

في نوافذ سطح المكتب، يمكن تغيير حجم التطبيقات ذات الاتجاه المُقفَل بحرية. هذا يعني أنه حتى إذا كان النشاط تم تثبيتها في الاتجاه العمودي لا يزال بإمكان المستخدمين تغيير حجم التطبيق إلى نافذة اتجاه أفقي.

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

يتم تكبير واجهة المستخدم في التطبيقات التي تم تحديدها على أنّها غير قابلة للتغيير (أي resizableActivity = false) مع الحفاظ على نسبة العرض إلى الارتفاع نفسها.

الشكل 4. يتم تغيير حجم واجهة المستخدم لتطبيق لا يمكن تغيير حجمه مع تغيير حجم النافذة.

تتضمّن تطبيقات الكاميرا التي تقفل الاتجاه أو التي تم الإعلان عن أنّها لا يمكن تغيير حجمها معاملة خاصة للعدسة التي تناسب عدسة الكاميرا: يمكن تغيير حجم النافذة بشكل كامل، لكن عدسة الكاميرا تحافظ على نسبة العرض إلى الارتفاع ذاتها. من خلال افتراض أنّ التطبيقات وتعمل دائمًا في الوضع العمودي أو الأفقي، أو تتيح التطبيقات الافتراضات التي تؤدي إلى حسابات خاطئة للمعاينة أو الصورة الملتقطة الاتجاه أو نسبة العرض إلى الارتفاع التي ينتج عنها صور موسَّعة أو جانبية أو مقلوبة.

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

لمعرفة المزيد من المعلومات حول وضع التوافق مع تطبيقات الكاميرا، يُرجى الاطّلاع على وضع التوافق مع الجهاز:

الشكل 5. تحتفظ عدسة الكاميرا بنسبة العرض إلى الارتفاع عند تغيير حجم النافذة.

إدراجات العناوين القابلة للتخصيص

تحتوي جميع التطبيقات التي تعمل في نافذة سطح المكتب على شريط عنوان، حتى في الوضع المجسم.
تأكَّد من أنّ شريط العناوين لا يحجب محتوى تطبيقك. شريط العنوان هو نوع إدراج في شريط التسمية التوضيحية: androidx.compose.foundation.layout.WindowInsets.Companion.captionBar(); في المشاهدات، WindowInsets.Type.captionBar()، والتي تُعدّ جزءًا من أشرطة النظام.

يمكنك الاطّلاع على مزيد من المعلومات حول التعامل مع الأجزاء المُدمَجة في عرض المحتوى من الحافة إلى الحافة في تطبيقك والتعامل مع الأجزاء المُدمَجة للنوافذ في Compose.

يمكن أيضًا تخصيص شريط العنوان. يُطلق نظام Android 15 على نوع المظهر APPEARANCE_TRANSPARENT_CAPTION_BAR_BACKGROUND لإجراء شريط العناوين الشفاف للسماح للتطبيقات برسم محتوى مخصّص داخلها شريط العنوان.

ثم تصبح التطبيقات مسؤولة عن تصميم الجزء العلوي من المحتوى شريط التسمية التوضيحية (الخلفية والمحتوى المخصص وما إلى ذلك) باستثناء عناصر التسمية التوضيحية للنظام (أزرار الإغلاق وتكبير)، وهي رسمها النظام على شريط الترجمة والشرح الشفاف أعلى التطبيق

يمكن للتطبيقات تبديل مظهر عناصر النظام داخل التسمية التوضيحية المظهرَين الفاتح والداكن باستخدام APPEARANCE_LIGHT_CAPTION_BARS بطريقة مشابهة لكيفية تبديل شريط الحالة وشريط التنقل.

طرح نظام Android 15 أيضًا الطريقة WindowInsets#getBoundingRects() التي تتيح للتطبيقات فحص العناصر المضمّنة في شريط الترجمة والشرح بمزيد من التفصيل. يمكن للتطبيقات التمييز بين المناطق التي يرسم فيها النظام عناصر النظام المناطق غير المستخدمة حيث يمكن للتطبيقات وضع محتوى مخصص بدون عناصر نظام متداخلة.

قائمة Rect تشير الكائنات التي تعرضها واجهة برمجة التطبيقات إلى مناطق النظام التي يجب تجنبها. أي مساحة متبقية (يتم حسابها عن طريق طرح المستطيلات من شريط التسمية التوضيحية) هو المكان الذي يمكن للتطبيق الرسم فيه بدون تداخل عناصر النظام مع القدرة على استقبال المدخلات.

Chrome قبل تنفيذ الرؤوس المخصّصة وبعده.
الشكل 6. Chrome قبل تنفيذ الرؤوس المخصّصة وبعده.

إتاحة المهام المتعددة وفتح عدّة نُسخ من التطبيق

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

يقدّم نظام التشغيل Android 15 العنصر PROPERTY_SUPPORTS_MULTI_INSTANCE_SYSTEM_UI، الذي يمكن للتطبيقات ضبطه لتحديد أنّه يجب عرض واجهة مستخدم النظام للتطبيق لسماح بتشغيله كمثيلات متعددة.

إدارة نُسخ التطبيق باستخدام إيماءات السحب

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

الشكل 7. ابدأ نسخة جديدة من Chrome من خلال سحب علامة تبويب خارج نافذة الكمبيوتر المكتبي.

يوفّر Android 15 علامتَين لتخصيص سلوك السحب والإفلات:

  • DRAG_FLAG_START_INTENT_SENDER_ON_UNHANDLED_DRAG: يشير إلى أنه يجب تفويض السحب غير الذي تتم معالجته إلى النظام للبدء إذا لم تكن هناك نافذة مرئية تعالج الانخفاض. عند استخدام هذه العلامة، يجب على المتصل تقديم ClipData مع Item يحتوي على غير قابل للتغيير IntentSender إلى النشاط الذي سيتم إطلاقه (راجع ClipData.Item.Builder#setIntentSender()). يمكن للنظام تشغيل intent أم لا بناءً على عوامل مثل الشاشة الحالية. الحجم أو وضع النافذة. إذا لم يشغِّل النظام النية، يتم إلغاء النية من خلال عملية السحب والإفلات العادية.

  • DRAG_FLAG_GLOBAL_SAME_APPLICATION: يشير إلى أن عملية السحب يمكن أن تتخطى حدود النافذة (بالنسبة إلى نُسخ متعددة من التطبيق نفسه).

    عندما يكون startDragAndDrop() باستخدام مجموعة العلامات هذه، ويتم فقط عرض النوافذ المرئية التي تنتمي إلى نفس التطبيقات المشاركة في عملية السحب والحصول على المحتوى الذي تم سحبه.

الشكل 8 انقل علامة تبويب بين نسختَين من تطبيق Chrome.

تحسينات إضافية

يمكنك تخصيص عمليات تشغيل التطبيقات ونقلها من نافذة سطح المكتب إلى وضع ملء الشاشة.

تحديد الحجم والموضع التلقائيَين

لا تحتاج بعض التطبيقات إلى نافذة كبيرة لتقديم قيمة للمستخدمين، حتى إذا كان بإمكانهم تغيير حجمها. يمكنك استخدام الطريقة ActivityOptions#setLaunchBounds() لتحديد حجم وموضع تلقائيَين عند بدء نشاط.

الدخول إلى وضع ملء الشاشة من مساحة سطح المكتب

يمكن للتطبيقات الدخول إلى وضع ملء الشاشة آليًا من خلال الاتصال Activity#requestFullScreenMode() تؤدي هذه الطريقة إلى وضع التطبيق في وضع ملء الشاشة مباشرةً من نافذة سطح المكتب.