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

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