استخدام عناصر مضمّنة بتصميم Material 3

لتسهيل الاستخدام، تتعامل العديد من الدوال المركّبة المضمّنة في Material 3 (androidx.compose.material3) مع المساحات المتروكة بنفسها، استنادًا إلى كيفية وضع الدوال المركّبة في تطبيقك وفقًا لمواصفات Material.

الدوال المركّبة لمعالجة المساحات الداخلية

في ما يلي قائمة بمكوّنات Material التي تتعامل تلقائيًا مع الأجزاء الداخلية.

أشرطة التطبيقات

حاويات المحتوى

Scaffold

توفّر دالة 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 التي تم تمريرها إلى الدالة المركّبة لضبط سلوك الدالة المركّبة. يمكن أن تكون هذه المَعلمة نوعًا مختلفًا من مجموعة النوافذ التي يتم تطبيقها بدلاً من ذلك، أو يمكن إيقافها من خلال تمرير مثيل فارغ: WindowInsets(0, 0, 0, 0).

على سبيل المثال، لإيقاف معالجة المساحة المتروكة في LargeTopAppBar، اضبط المَعلمة windowInsets على مثيل فارغ:

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