כדי להקל על השימוש, הרבה מהפונקציות המובנות של Material 3 composables (androidx.compose.material3
) מטפלות בעצמן בשוליים הפנימיים, בהתאם למיקום הפונקציות באפליקציה לפי מפרטי 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
שמועבר לרכיב ה-Composable כדי להגדיר את ההתנהגות שלו. הפרמטר הזה יכול להיות סוג אחר של שוליים פנימיים של חלון שיוחל במקום זאת, או שניתן להשבית אותו על ידי העברת מופע ריק:
WindowInsets(0, 0, 0, 0)
.
לדוגמה, כדי להשבית את הטיפול בשוליים הפנימיים ב-LargeTopAppBar
, מגדירים את הפרמטר windowInsets
למופע ריק:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )