כדי להקל על השימוש, רכיבים רבים מתוך הרכיבים המורכבים המובנים של Material 3 (androidx.compose.material3
) מטפלים בעצמם בהוספת רכיבים, על סמך המיקום שלהם באפליקציה בהתאם למפרטי Material.
רכיבים מורכבים בתוך קטע
בהמשך מופיעה רשימה של רכיבי Material שמטפלים באופן אוטומטי בהוספת רכיבים לתוך רכיבים אחרים.
סרגי אפליקציות
TopAppBar
/SmallTopAppBar
/CenterAlignedTopAppBar
/MediumTopAppBar
/LargeTopAppBar
: הצדדים העליון והאופקי של סרחי המערכת משמשים כמילוי, כי הם משמשים בחלק העליון של החלון.BottomAppBar
: החלת הצדדים התחתון והאופקי של פסי המערכת כמרחק פנימי.
קונטיינרים של תוכן
ModalDrawerSheet
/DismissibleDrawerSheet
/PermanentDrawerSheet
(תוכן בתוך תפריט ניווט מודלי): הוספת הכנסות אנכיות והתחלה לתוכן.ModalBottomSheet
: החלת החתכים התחתונים.NavigationBar
: החלת הרכיבים התחתון והאופקי.NavigationRail
: החלת הפריטים vertical ו-start.
פיגום
כברירת מחדל, Scaffold
מספק תצוגות מפורטות כפרמטר paddingValues
לשימוש ולצריכה.
Scaffold
לא מחילה את התמונות הממוזערות על התוכן. האחריות הזו היא שלכם.
לדוגמה, כדי לצרוך את הרכיבים האלה עם LazyColumn
בתוך Scaffold
:
Scaffold { innerPadding -> // innerPadding contains inset information for you to use and apply LazyColumn( // consume insets as scaffold doesn't do it by default modifier = Modifier.consumeWindowInsets(innerPadding), contentPadding = innerPadding ) { // .. } }
בסרטון הבא מוצג LazyColumn
בתוך Scaffold
עם תצוגה מקצה לקצה מושבתת ומופעל:
שינוי של ברירת המחדל של הפריימים הפנימיים
אפשר לשנות את הפרמטר windowInsets
שמוענק ל-composable כדי להגדיר את ההתנהגות שלו. הפרמטר הזה יכול להיות סוג אחר של חלון מוטמע שיחולו עליו במקום זאת, או מושבת על ידי העברת מופע ריק:
WindowInsets(0, 0, 0, 0)
.
לדוגמה, כדי להשבית את הטיפול בהטמעה ב-LargeTopAppBar
, מגדירים את הפרמטר windowInsets
למכונה ריקה:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )