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")
    }
)