מידע על הגנה על שורת המערכת

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

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

יצירת סרגלי מידע שקופים

כדי ליצור פס ניווט שקוף לניווט באמצעות תנועות, צריך לטרגט ל-Android בגרסה 15 ואילך או לשלוח קריאה אל enableEdgeToEdge() עם ארגומנטים שמוגדרים כברירת מחדל בגרסאות קודמות. בסרגל ניווט עם שלושה כפתורים, מגדירים את Window.setNavigationBarContrastEnforced לערך false, אחרת תוחל שכבת הגנה שקופה למחצה.

יצירת סרגלי מידע שקופים למחצה

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

class SystemBarProtectionSnippets : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true
        // which is used to add a translucent scrim to three-button navigation
        enableEdgeToEdge()

        setContent {
            MyTheme {
                // Main content
                MyContent()

                // After drawing main content, draw status bar protection
                StatusBarProtection()
            }
        }
    }
}

@Composable
private fun StatusBarProtection(
    color: Color = MaterialTheme.colorScheme.surfaceContainer,
) {
    Spacer(
        modifier = Modifier
            .fillMaxWidth()
            .height(
                with(LocalDensity.current) {
                    (WindowInsets.statusBars.getTop(this) * 1.2f).toDp()
                }
            )
            .background(
                brush = Brush.verticalGradient(
                    colors = listOf(
                        color.copy(alpha = 1f),
                        color.copy(alpha = 0.8f),
                        Color.Transparent
                    )
                )
            )
    )
}

תרשים 1. שורת סטטוס שקופה למחצה.

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