Material 3 इनसेट का इस्तेमाल करना

इस्तेमाल में आसानी के लिए, Material 3 के कई कंपोज़ेबल (androidx.compose.material3) अपने-आप इनसेट को मैनेज करते हैं. ऐसा इस आधार पर होता है कि कंपोज़ेबल को Material स्पेसिफ़िकेशन के मुताबिक, आपके ऐप्लिकेशन में कैसे रखा गया है.

इनसेट हैंडलिंग कंपोज़ेबल

यहां मटीरियल कॉम्पोनेंट की सूची दी गई है. ये अपने-आप इनसेट को मैनेज करते हैं.

ऐप्लिकेशन बार

  • TopAppBar / SmallTopAppBar / CenterAlignedTopAppBar / MediumTopAppBar / LargeTopAppBar: यह सिस्टम बार के ऊपरी और हॉरिज़ॉन्टल किनारों पर पैडिंग लागू करता है, क्योंकि इसका इस्तेमाल विंडो के सबसे ऊपर किया जाता है.
  • BottomAppBar: सिस्टम बार के नीचे और हॉरिज़ॉन्टल किनारों को पैडिंग के तौर पर इस्तेमाल करता है.

कॉन्टेंट कंटेनर

  • ModalDrawerSheet / DismissibleDrawerSheet / PermanentDrawerSheet (मोडल नेविगेशन ड्रॉअर में मौजूद कॉन्टेंट): कॉन्टेंट पर वर्टिकल और स्टार्ट इंसर्ट लागू करता है.
  • ModalBottomSheet: बॉटम इनसेट लागू करता है.
  • NavigationBar : इससे नीचे और हॉरिज़ॉन्टल इंसर्ट लागू होते हैं.
  • NavigationRail: वर्टिकल और स्टार्ट इंसर्ट लागू करता है.

स्काफ़ोल्ड

डिफ़ॉल्ट रूप से, Scaffold आपको पैरामीटर PaddingValues के तौर पर इंसर्ट देता है, ताकि आप इसका इस्तेमाल कर सकें. Scaffold कॉन्टेंट में इनसेट लागू नहीं करता है. यह आपकी ज़िम्मेदारी है. उदाहरण के लिए, Scaffold में मौजूद LazyColumn के साथ इन इनसेट का इस्तेमाल करने के लिए:

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
    ) {
        // ..
    }
}

इस वीडियो में, किनारे से किनारे तक डिसप्ले करने की सुविधा बंद और चालू होने पर, Scaffold में LazyColumn दिखाया गया है:

आम तौर पर, Scaffold में PaddingValues पैरामीटर का इस्तेमाल करने से, आपके यूज़र इंटरफ़ेस (यूआई) को सिस्टम यूआई और डिसप्ले कटआउट से दूर रखने के लिए काफ़ी जगह मिल जाती है. अगर आपको अपने यूज़र इंटरफ़ेस (यूआई) में बहुत ज़्यादा पैडिंग नहीं लगानी है, तो Scaffold का इस्तेमाल करें. साथ ही, रूलर, पैडिंग मॉडिफ़ायर या इंसर्ट साइज़ मॉडिफ़ायर जैसे इंसर्ट हैंडलिंग के अन्य तरीकों का इस्तेमाल न करें.

डिफ़ॉल्ट इंसर्ट को बदलना

कंपोज़ेबल के व्यवहार को कॉन्फ़िगर करने के लिए, कंपोज़ेबल को पास किए गए windowInsets पैरामीटर को बदला जा सकता है. इस पैरामीटर में, विंडो इंसर्ट का कोई दूसरा टाइप इस्तेमाल किया जा सकता है. इसके अलावा, इसे खाली इंस्टेंस WindowInsets(0, 0, 0, 0) पास करके बंद किया जा सकता है.

उदाहरण के लिए, LargeTopAppBar पर इनसेट हैंडलिंग बंद करने के लिए, windowInsets पैरामीटर को खाली इंस्टेंस पर सेट करें:

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