نظام Android الأساسي مسؤول عن رسم واجهة مستخدِم النظام، مثل شريط الحالة وشريط التنقّل. تظهر واجهة مستخدم النظام هذه بغض النظر عن التطبيق الذي يستخدمه المستخدِم.
WindowInsets توفّر معلومات عن واجهة مستخدم النظام
لضمان رسم تطبيقك في المنطقة الصحيحة وعدم حجب واجهة المستخدم
بسبب واجهة مستخدم النظام.
في Android 14 (المستوى 34 من واجهة برمجة التطبيقات) والإصدارات الأقدم، لا يتم رسم واجهة مستخدم تطبيقك أسفل أشرطة النظام وفتحات العرض تلقائيًا.
في Android 15 (مستوى واجهة برمجة التطبيقات 35) والإصدارات الأحدث، يتم رسم تطبيقك أسفل أشرطة النظام وفتحات العرض بعد أن يستهدف تطبيقك الإصدار 35 من حزمة تطوير البرامج (SDK). يؤدي ذلك إلى توفير تجربة مستخدم أكثر سلاسة ويسمح لتطبيقك بالاستفادة الكاملة من مساحة النافذة المتاحة له.
يُطلق على عرض المحتوى خلف واجهة مستخدم النظام اسم ميزة "العرض حتى حافة الشاشة". في هذه الصفحة، ستتعرّف على الأنواع المختلفة من المساحات الداخلية وكيفية استخدام ميزة "العرض حتى حافة الشاشة" وكيفية استخدام واجهات برمجة التطبيقات للمساحات الداخلية لتحريك واجهة المستخدم وضمان عدم حجب عناصر واجهة مستخدم النظام لمحتوى تطبيقك.
أساسيات المساحات الداخلية
عندما يستخدم تطبيق ميزة "العرض حتى حافة الشاشة"، عليك التأكّد من عدم حجب واجهة مستخدم النظام للمحتوى والتفاعلات المهمة. على سبيل المثال، إذا تم وضع زر خلف شريط التنقّل، قد لا يتمكّن المستخدِم من النقر عليه.
يتم تحديد حجم واجهة مستخدم النظام ومعلومات عن مكان وضعها باستخدام المساحات الداخلية.
لكل جزء من واجهة مستخدم النظام نوع مساحة داخلية مطابق يصف حجمه ومكان وضعه. على سبيل المثال، توفّر المساحات الداخلية لشريط الحالة حجم شريط الحالة وموضعه، بينما توفّر المساحات الداخلية لشريط التنقّل حجم شريط التنقّل وموضعه. يتألف كل نوع من المساحات الداخلية من أربعة أبعاد بالبكسل: أعلى وأيسر وأيمن وأسفل. تحدّد هذه الأبعاد مدى امتداد واجهة مستخدم النظام من الجوانب المقابلة لنافذة التطبيق. لتجنُّب التداخل مع هذا النوع من واجهة مستخدم النظام، يجب بالتالي وضع مساحة داخلية لواجهة مستخدم التطبيق بهذا المقدار.
تتوفّر أنواع المساحات الداخلية المضمّنة في Android من خلال WindowInsets:
المساحات الداخلية التي تصف أشرطة الحالة وهي أشرطة واجهة مستخدم النظام العلوية التي تحتوي على رموز الإشعارات والمؤشرات الأخرى. |
|
المساحات الداخلية لشريط الحالة عندما يكون مرئيًا إذا كانت أشرطة الحالة مخفية (بسبب الدخول إلى وضع ملء الشاشة الغامر)، ستكون المساحات الداخلية الرئيسية لشريط الحالة فارغة، ولكن لن تكون هذه المساحات الداخلية فارغة. |
|
المساحات الداخلية التي تصف أشرطة التنقّل وهي أشرطة واجهة مستخدم النظام على الجانب الأيسر أو الأيمن أو السفلي من الجهاز، وتصف شريط التطبيقات أو رموز التنقّل. يمكن أن تتغيّر هذه الأشرطة في وقت التشغيل استنادًا إلى طريقة التنقّل المفضّلة لدى المستخدِم والتفاعل مع شريط التطبيقات. |
|
المساحات الداخلية لشريط التنقّل عندما يكون مرئيًا إذا كانت أشرطة التنقّل مخفية (بسبب الدخول إلى وضع ملء الشاشة الغامر)، ستكون المساحات الداخلية الرئيسية لشريط التنقّل فارغة، ولكن لن تكون هذه المساحات الداخلية فارغة. |
|
المساحة الداخلية التي تصف زخرفة نافذة واجهة مستخدم النظام إذا كانت في نافذة ذات شكل حر، مثل شريط العنوان العلوي |
|
المساحات الداخلية لشريط العنوان عندما يكون مرئيًا إذا كانت أشرطة العنوان مخفية، ستكون المساحات الداخلية الرئيسية لشريط العنوان فارغة، ولكن لن تكون هذه المساحات الداخلية فارغة. |
|
اتحاد المساحات الداخلية لأشرطة النظام، والتي تشمل أشرطة الحالة وأشرطة التنقّل وشريط العنوان |
|
المساحات الداخلية لأشرطة النظام عندما تكون مرئية إذا كانت أشرطة النظام مخفية (بسبب الدخول إلى وضع ملء الشاشة الغامر)، ستكون المساحات الداخلية الرئيسية لأشرطة النظام فارغة، ولكن لن تكون هذه المساحات الداخلية فارغة. |
|
المساحات الداخلية التي تصف مقدار المساحة في الأسفل التي تشغلها لوحة المفاتيح الافتراضية |
|
المساحات الداخلية التي تصف مقدار المساحة التي شغلتها لوحة مفاتيح افتراضية قبل حركة لوحة المفاتيح الحالية |
|
المساحات الداخلية التي تصف مقدار المساحة التي ستشغلها لوحة المفاتيح الافتراضية بعد حركة لوحة المفاتيح الحالية |
|
نوع من المساحات الداخلية يصف معلومات أكثر تفصيلاً عن واجهة مستخدم التنقّل، ما يمنح مقدار المساحة التي سيتعامل فيها النظام مع "النقرات" وليس التطبيق. بالنسبة إلى أشرطة التنقّل الشفافة التي تستخدم ميزة "التنقّل بالإيماءات"، يمكن النقر على بعض عناصر التطبيق من خلال واجهة مستخدم التنقّل في النظام. |
|
المساحات الداخلية للعنصر القابل للنقر عندما يكون مرئيًا إذا كانت العناصر القابلة للنقر مخفية (بسبب الدخول إلى وضع ملء الشاشة الغامر)، ستكون المساحات الداخلية الرئيسية للعنصر القابل للنقر فارغة، ولكن لن تكون هذه المساحات الداخلية فارغة. |
|
المساحات الداخلية التي تمثّل مقدار المساحات الداخلية التي سيقاطع فيها النظام الإيماءات للتنقّل يمكن للتطبيقات تحديد معالجة مقدار محدود من هذه الإيماءات يدويًا باستخدام |
|
مجموعة فرعية من إيماءات النظام التي سيتعامل معها النظام دائمًا، ولا يمكن إيقافها باستخدام |
|
المساحات الداخلية التي تمثّل مقدار التباعد اللازم لتجنُّب التداخل مع صورة مقطوعة للشاشة (النتوء أو الثقب) |
|
المساحات الداخلية التي تمثّل المناطق المنحنية من شاشة العرض المتسلسلة تحتوي شاشة العرض المتسلسلة على مناطق منحنية على طول حواف الشاشة حيث تبدأ الشاشة بالالتفاف على طول جوانب الجهاز. |
يتم تلخيص هذه الأنواع من خلال ثلاثة أنواع من المساحات الداخلية "الآمنة" التي تضمن عدم حجب المحتوى:
تحمي أنواع المساحات الداخلية "الآمنة" هذه المحتوى بطرق مختلفة، استنادًا إلى المساحات الداخلية الأساسية للمنصة:
- استخدِم
WindowInsets.safeDrawingلحماية المحتوى الذي لا يجب رسمه أسفل أي واجهة مستخدم للنظام. هذا هو الاستخدام الأكثر شيوعًا للمساحات الداخلية: منع رسم المحتوى الذي تحجبه واجهة مستخدم النظام (جزئيًا أو كليًا). - استخدِم
WindowInsets.safeGesturesلحماية المحتوى الذي يتضمّن إيماءات. يؤدي ذلك إلى تجنُّب تعارض إيماءات النظام مع إيماءات التطبيق (مثل الإيماءات الخاصة بالصفحات السفلية أو الصور الدائرية أو الألعاب). - استخدِم
WindowInsets.safeContentكمزيج منWindowInsets.safeDrawingوWindowInsets.safeGesturesلضمان عدم حدوث أي تداخل مرئي أو تداخل في الإيماءات.
مُقترَحة لك
- ملاحظة: يظهر نص الرابط عندما يكون JavaScript غير مفعّل
- مكوّنات وتنسيقات Material
- نقل
CoordinatorLayoutإلى Compose - اعتبارات أخرى