الإعداد اليدوي للشاشة الممتدة من الحافة إلى الحافة

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

عرض تطبيقك في وضع ملء الشاشة

استخدام WindowCompat.setDecorFitsSystemWindows(window, false) لتصميم تطبيقك خلف أشرطة النظام، كما هو موضّح في الرمز البرمجي التالي مثال:

Kotlin

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  WindowCompat.setDecorFitsSystemWindows(window, false)
}

Java

@Override
public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
}

تغيير لون أشرطة النظام

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

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

يمكنك تعديل ملف themes.xml لضبط لون شريط التنقّل، اختياريًا، لتعيين شريط الحالة كشفاف ولون محتوى شريط الحالة ظْلِم

<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
  <item name="android:navigationBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set to transparent if your app is drawing behind the status bar. -->
  <item name="android:statusBarColor">
     @android:color/transparent
  </item>

  <!-- Optional: set for a light status bar with dark content. -->
  <item name="android:windowLightStatusBar">
    true
  </item>
</style>

يمكنك استخدام واجهة برمجة التطبيقات WindowInsetsController بشكل مباشر، ولكننا ننصح بشدة باستخدام مكتبة الدعم WindowInsetsControllerCompat حيثما أمكن. يمكنك استخدام واجهة برمجة التطبيقات WindowInsetsControllerCompat بدلاً من theme.xml للتحكّم في لون محتوى شريط الحالة. لإجراء ذلك، استخدِم الدالة setAppearanceLightNavigationBars() ، مع إدخال true لتغيير لون المقدّمة في شريط التنقّل إلى لون فاتح أو false للرجوع إلى اللون التلقائي.

Kotlin

val windowInsetsController =
      ViewCompat.getWindowInsetsController(window.decorView)

windowInsetsController?.isAppearanceLightNavigationBars = true

Java

WindowInsetsControllerCompat windowInsetsController =
      ViewCompat.getWindowInsetsController(getWindow().getDecorView());
if (windowInsetsController == null) {
    return;
}

windowInsetsController.setAppearanceLightNavigationBars(true);