הפעלת enableEdgeToEdge כוללת את הלוגיקה שנדרשת כדי להשיג תאימות לדור קודם, ולכן זו הדרך המומלצת להגדרת תצוגה מקצה לקצה. במקום המדריך הזה, כדאי לעיין במאמרי העזרה בנושא יצירת מסמכים ותצוגות כדי ללמוד על הדרך המודרנית להצגת מסמכים מקצה לקצה באמצעות enableEdgeToEdge.
אם האפליקציה שלכם חייבת להגדיר ידנית תצוגה מקצה לקצה (אבל לא מומלץ לעשות את זה), אתם יכולים לפעול לפי השלבים הבאים:
- רוצה להתקשר ל-
WindowCompat.setDecorFitsSystemWindows(window, false)? - הגדרת הסרגלים של המערכת כשקופים.
- טיפול ב-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);
טיפול בשוליים פנימיים
לבסוף, האפליקציה צריכה לטפל ב-insets כדי שממשק המשתמש הקריטי לא יחפוף לסרגלי המידע ולמגרעת במסך. במאמרי העזרה בנושא יצירת מסמכים ותצוגות אפשר לקבל מידע על טיפול בתוספות.