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