כדי להקל על השימוש, הרבה מהפונקציות המובנות של Material 3 composables (androidx.compose.material3
) מטפלות בעצמן ב-insets, בהתאם למיקום של הפונקציות האלה באפליקציה לפי המפרטים של Material.
פונקציות קומפוזביליות לטיפול ב-inset
בהמשך מופיעה רשימה של רכיבי Material שמטפלים אוטומטית ב-insets.
סרגלי אפליקציות
-
TopAppBar
/SmallTopAppBar
/CenterAlignedTopAppBar
/MediumTopAppBar
/LargeTopAppBar
: המערכת מוסיפה ריווח (padding) בצד העליון ובצדדים האופקיים של סרגלי המערכת, כי הערך הזה משמש בחלק העליון של החלון. -
BottomAppBar
: המרווח הפנימי יוגדר לפי הצדדים התחתון והאופקיים של סרגלי המערכת.
קונטיינרים של תוכן
-
ModalDrawerSheet
/DismissibleDrawerSheet
/PermanentDrawerSheet
(תוכן בתוך מגירת ניווט מודאלית): מוסיף שוליים פנימיים אנכיים והתחלתיים לתוכן. -
ModalBottomSheet
: החלת השוליים הפנימיים התחתונים. -
NavigationBar
: החלת השוליים הפנימיים התחתונים והאופקיים. -
NavigationRail
: החלת השוליים הפנימיים האנכיים וההתחלתיים.
פיגום
כברירת מחדל, Scaffold
מספקת את השוליים הפנימיים כפרמטר paddingValues
לשימושכם.
Scaffold
לא חל על התוכן; האחריות לכך היא שלכם.
לדוגמה, כדי להשתמש ב-insets האלה עם 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
שמועבר לרכיב הניתן להרכבה כדי להגדיר את ההתנהגות שלו. הפרמטר הזה יכול להיות סוג אחר של שוליים פנימיים של חלון שיוחל במקום ברירת המחדל, או שניתן להשבית אותו על ידי העברת מופע ריק:
WindowInsets(0, 0, 0, 0)
.
לדוגמה, כדי להשבית את הטיפול בשוליים הפנימיים ב-LargeTopAppBar
, מגדירים את הפרמטר windowInsets
למופע ריק:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )