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

כדי להפעיל את התצוגה מקצה לקצה באפליקציה, צריך לבצע קריאה ל-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);