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

يمكنك تفعيل الشاشة الشاملة في التطبيق من خلال طلب 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);