استفاده از حاشیه‌های «ماتریال ۳»

برای سهولت استفاده، بسیاری از ترکیب‌پذیرهای داخلی Material 3 (androidx.compose.material3) خودشان براساس نحوه قرارگیری ترکیب‌پذیرها در برنامه شما مطابق با مشخصات Material، تورفتگی‌ها را مدیریت می‌کنند.

توابع ترکیب‌پذیر مدیریت حاشیه

در زیر فهرستی از عناصر مطالب که به‌طور خودکار تورفتگی‌ها را مدیریت می‌کنند آورده شده است.

نوار برنامه

  • TopAppBar / CenterAlignedTopAppBar / MediumTopAppBar / LargeTopAppBar: اضلاع بالایی و افقی نوار سیستم را به‌عنوان حاشیه داخلی اعمال می‌کند زیرا در بالای پنجره استفاده می‌شود.
  • BottomAppBar: طرف‌های پایین و افقی نوارهای سیستم را به‌عنوان حاشیه داخلی اعمال می‌کند.

محفظه‌های محتوا

داربست

به‌طور پیش‌فرض، 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 با نمایشگر لبه‌به‌لبه غیرفعال و فعال نشان می‌دهد:

استفاده از پارامتر PaddingValues در Scaffold معمولاً برای درج کردن میانای کاربر دور از میانای کاربر سیستم و برش‌های نمایشگر کافی است. اگر از Scaffold استفاده می‌کنید، از رویکردهای اضافی برای مدیریت درج‌ها مانند خط‌کش‌ها، اصلاح‌کننده‌های حاشیه داخلی، یا اصلاح‌کننده‌های اندازه درج استفاده نکنید تا حاشیه داخلی بیش‌ازحد به میانای کاربری شما اعمال نشود.

لغو کردن درج‌های پیش‌فرض

می‌توانید پارامتر windowInsets را که به composable ارسال شده است تغییر دهید تا رفتار composable را پیکربندی کنید. این پارامتر می‌تواند نوع دیگری از درج پنجره برای اعمال به‌جای آن باشد، یا با ارسال نمونه‌ای خالی غیرفعال شود: WindowInsets(0, 0, 0, 0).

برای مثال، برای غیرفعال کردن مدیریت درج در LargeTopAppBar، پارامتر windowInsets را روی یک نمونه خالی تنظیم کنید:

LargeTopAppBar(
    windowInsets = WindowInsets(0, 0, 0, 0),
    title = {
        Text("Hi")
    }
)