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

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

في الشكل 1، يمكنك الاطّلاع على تنظيم الشاشة مع تفعيل وضع "نوافذ سطح المكتب". ملاحظات:

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

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

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

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

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

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

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

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

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

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

يتم تصغير واجهة المستخدم في التطبيقات التي تم تحديدها على أنّها غير قابلة للتغيير (أي resizeableActivity = 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()). يمكن للنظام تشغيل النية أو عدم تشغيلها استنادًا إلى عوامل مثل حجم الشاشة الحالي أو وضع وضع النوافذ. إذا لم يشغِّل النظام النية، يتم إلغاء النية من خلال عملية السحب والإفلات العادية.

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

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

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

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

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

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

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

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

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