כדי להקל על השימוש, רכיבים רבים מרכיבי ה-Composable המובנים של 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") } )