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

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

इनसेट को हैंडल करने वाले कंपोज़ेबल

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

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

  • TopAppBar / 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")
    }
)