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

הפעלת enableEdgeToEdge כוללת את הלוגיקה שנדרשת כדי להשיג תאימות לאחור, ולכן זו הדרך המומלצת להגדרת תצוגה מקצה לקצה. כדי ללמוד איך להשתמש ב-enableEdgeToEdge כדי להציג את המסך מקצה לקצה בדרך המודרנית, כדאי לעיין במאמרי העזרה בנושא יצירת מסמכים ותצוגות במקום במדריך הזה.

אם האפליקציה שלכם חייבת להגדיר ידנית תצוגה מקצה לקצה (אבל לא מומלץ לעשות את זה), אתם יכולים לפעול לפי השלבים הבאים:

  1. רוצה להתקשר ל-WindowCompat.setDecorFitsSystemWindows(window, false)?
  2. הגדרת הסרגלים של המערכת כשקופים.
  3. טיפול ב-insets.

פריסת האפליקציה במסך מלא

משתמשים ב-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);
}

שינוי הצבע של סרגלי המערכת

כשיוצרים פריסה מקצה לקצה באופן ידני ב-Android 14 ובגרסאות קודמות, האפליקציה צריכה גם להפוך את סרגלי המערכת לשקופים.

אפשר לערוך את הקובץ 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>

אפשר להשתמש ב-WindowInsetsControllerCompat API במקום ב-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);

טיפול בשוליים פנימיים

לבסוף, האפליקציה צריכה לטפל בתוספות שוליים כדי שממשק המשתמש הקריטי לא יחפוף לסרגלי המידע ולחלק החתוך של המסך. במאמרי העזרה בנושא יצירה ותצוגות אפשר לקרוא איך משתמשים בתמונות ממוזערות.