برای سهولت استفاده، بسیاری از مواد داخلی 3 composable ( androidx.compose.material3 ) بر اساس نحوه قرارگیری اجزای سازنده در برنامه شما با توجه به مشخصات Material، خود به کار میروند.
مواد ترکیبی هندلینگ داخلی
در زیر لیستی از اجزای متریال است که به طور خودکار inset ها را مدیریت می کنند.
نوارهای برنامه
-
TopAppBar/SmallTopAppBar/CenterAlignedTopAppBar/MediumTopAppBar/LargeTopAppBar: دو طرف بالا و افقی نوارهای سیستم را به عنوان بالشتک اعمال می کند زیرا در بالای پنجره استفاده می شود. -
BottomAppBar: دو طرف پایین و افقی نوارهای سیستم را به عنوان بالشتک اعمال می کند.
ظروف محتوا
-
ModalDrawerSheet/DismissibleDrawerSheet/PermanentDrawerSheet(محتوا در یک کشوی ناوبری معین): ورودی های عمودی و شروع را به محتوا اعمال می کند. -
ModalBottomSheet: ورودی های پایینی را اعمال می کند. -
NavigationBar: ورودی های پایین و افقی را اعمال می کند. -
NavigationRail: ورودی های عمودی و شروع را اعمال می کند.
داربست
بهطور پیشفرض، Scaffold ورودیهایی را بهعنوان پارامتر PaddingValues برای مصرف و استفاده شما فراهم میکند. Scaffold در داخل محتوا را اعمال نمی کند. این مسئولیت با شماست به عنوان مثال، برای مصرف این inset ها با 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 با صفحه نمایش لبه به لبه غیرفعال و فعال نشان می دهد:
استفاده از پارامتر PaddingValues در Scaffold به طور کلی برای قرار دادن رابط کاربری شما به دور از UI سیستم و برش های نمایش کافی است. اگر از Scaffold استفاده می کنید، از استفاده از رویکردهای اضافی در دستکاری داخلی مانند خط کش ها، اصلاح کننده های بالشتک یا اصلاح کننده های اندازه داخلی خودداری کنید تا از اعمال بالشتک زیاد روی رابط کاربری خود جلوگیری کنید.
درج های پیش فرض را لغو کنید
میتوانید پارامتر windowInsets را به composable تغییر دهید تا رفتار composable را پیکربندی کنید. این پارامتر می تواند نوع دیگری از درج پنجره باشد که به جای آن اعمال می شود، یا با عبور دادن یک نمونه خالی غیرفعال می شود: WindowInsets(0, 0, 0, 0) .
به عنوان مثال، برای غیرفعال کردن مدیریت inset در LargeTopAppBar ، پارامتر windowInsets را روی یک نمونه خالی تنظیم کنید:
LargeTopAppBar( windowInsets = WindowInsets(0, 0, 0, 0), title = { Text("Hi") } )