بما أنّ تطبيقات Android تعمل الآن على مجموعة متنوعة من الأجهزة (مثل الهواتف والأجهزة اللوحية والأجهزة القابلة للطي وأجهزة الكمبيوتر والسيارات وأجهزة التلفزيون) وأوضاع عرض المحتوى في النافذة الحالية على الشاشات الكبيرة (مثل وضع تقسيم الشاشة والعرض في نافذة)، على المطوّرين إنشاء تطبيقات Android تتكيّف مع أي حجم للشاشة والنافذة، بغض النظر عن اتجاه الجهاز. إنّ نماذج التصميم، مثل حصر الاتجاه وإمكانية تغيير الحجم، أصبحت مقيّدة جدًا في عالم اليوم الذي يضم أجهزة متعددة.
تجاهُل قيود اتجاه الشاشة وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع
بالنسبة إلى التطبيقات التي تستهدف الإصدار 17 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 37) أو الإصدارات الأحدث، لن تسري قيود اتجاه الشاشة وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع على الشاشات التي يزيد أصغر عرض لها عن 600 وحدة بكسل مستقلة الكثافة. تملأ التطبيقات نافذة العرض بالكامل، بغض النظر عن نسبة العرض إلى الارتفاع أو الاتجاه المفضّل للمستخدم، ولا يتم استخدام تأثير pillarboxing.
يزيل الإصدار Android 17 خيار المطوّر المؤقت لإيقاف قيود اتجاه الشاشة وإمكانية تغيير الحجم على الأجهزة ذات الشاشات الكبيرة والذي كان متاحًا في الإصدار Android 16.
يقدّم هذا التغيير سلوكًا عاديًا جديدًا للمنصة. يتجه Android نحو نموذج يُتوقع فيه أن تتكيف التطبيقات مع مختلف الاتجاهات وأحجام العرض ونِسب العرض إلى الارتفاع. فالقيود، مثل الاتجاه الثابت أو إمكانية تغيير الحجم المحدودة، تعيق قدرة التطبيق على التكيّف. اجعل تطبيقك متكيّفًا لتقديم أفضل تجربة مستخدم ممكنة.
يمكنك أيضًا اختبار هذا السلوك باستخدام اختبار توافق التطبيقات وتفعيل علامة التوافق UNIVERSAL_RESIZABLE_BY_DEFAULT.
التغييرات الشائعة التي قد تؤدي إلى أعطال
قد يؤثر تجاهل قيود اتجاه الشاشة وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع في واجهة مستخدم تطبيقك على بعض الأجهزة، خاصةً العناصر التي تم تصميمها للتنسيقات الصغيرة التي تم قفلها في الوضع العمودي. على سبيل المثال، قد تواجه التطبيقات مشاكل مثل التخطيطات الممتدة والرسوم المتحركة والمكونات خارج الشاشة. فأي افتراضات تضعها بشأن نسبة العرض إلى الارتفاع أو الاتجاه يمكن أن تسبب مشاكل في عرض تطبيقك. تعرَّف على مزيد من المعلومات حول كيفية تجنُّب هذه المشاكل وتحسين سلوك تطبيقك التكيُّفي.
من المشاكل الشائعة في الأجهزة القابلة للطي في الوضع الأفقي أو في حسابات نسبة العرض إلى الارتفاع في سيناريوهات مثل النوافذ المتعددة أو العرض في نافذة أو الشاشات المتصلة، هي ظهور معاينة الكاميرا بشكل ممتد أو تم تدويرها أو اقتصاصها. تحدث هذه المشكلة غالبًا على الأجهزة ذات الشاشات الكبيرة والأجهزة القابلة للطي لأنّ التطبيقات تفترض وجود علاقات ثابتة بين ميزات الكاميرا (مثل نسبة العرض إلى الارتفاع واتجاه أداة الاستشعار) وميزات الجهاز (مثل اتجاه الجهاز والاتجاه الطبيعي). مزيد من المعلومات حول إدارة معاينة الكاميرا
يؤدي السماح بتدوير الجهاز إلى إعادة إنشاء المزيد من الأنشطة، ما قد يؤدي إلى فقدان حالة المستخدم إذا لم يتم الحفاظ عليها بشكل صحيح. تعرَّف على كيفية حفظ حالة واجهة المستخدم بشكل صحيح في حفظ حالات واجهة المستخدم.
تفاصيل التنفيذ
يتم تجاهل سمات البيان وواجهات برمجة التطبيقات التالية الخاصة بوقت التشغيل على الأجهزة ذات الشاشات الكبيرة في وضعَي ملء الشاشة والنوافذ المتعددة:
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
يتم تجاهل القيم التالية لـ screenOrientation, setRequestedOrientation() وgetRequestedOrientation():
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
في ما يتعلّق بإمكانية تغيير حجم الشاشة، لا يكون لـ android:resizeableActivity="false",
android:minAspectRatio وandroid:maxAspectRatio أي تأثير.
الاستثناءات
لا تنطبق قيود Android 17 المتعلقة باتجاه الشاشة وإمكانية تغيير الحجم ونسبة العرض إلى الارتفاع في الحالات التالية:
- الألعاب (استنادًا إلى علامة
android:appCategory) - موافقة المستخدمين صراحةً على الإعداد التلقائي للتطبيق في إعدادات نسبة العرض إلى الارتفاع على الجهاز
- الشاشات التي يقلّ أصغر عرض لها عن
sw600dp