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

يمكنك تفعيل ميزة "العرض حتى حافة الشاشة" في تطبيقك من خلال الاتصال بالرقم 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);