הגדרה ידנית של התצוגה מקצה לקצה

כדי להפעיל את התצוגה מקצה לקצה באפליקציה, צריך לבצע קריאה ל-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. שינויים בצבעים במצב ניווט באמצעות תנועות.
  • מצב לחצן: המערכת מחילה מסך שקוף מאחורי שורת הסטטוסים (ברמת API 29 ואילך) או שורת סטטוסים שקופה (ברמת API 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>

אתם יכולים להשתמש ישירות ב-API של WindowInsetsController, אבל מומלץ מאוד להשתמש בספריית התמיכה WindowInsetsControllerCompat כשאפשר. אפשר להשתמש ב-API ‏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);