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 প্যারামিটার ব্যবহার করা সাধারণত আপনার UI-কে সিস্টেম UI এবং ডিসপ্লে কাটআউট থেকে দূরে ইনসেট করার জন্য যথেষ্ট। আপনার UI-তে খুব বেশি প্যাডিং প্রয়োগ করা এড়াতে Scaffold ব্যবহার করলে, রুলার, প্যাডিং মডিফায়ার বা ইনসেট সাইজ মডিফায়ারের মতো অতিরিক্ত ইনসেট হ্যান্ডলিং পদ্ধতি ব্যবহার করা এড়িয়ে চলুন।

ডিফল্ট ইনসেট ওভাররাইড করুন

কম্পোজেবলের আচরণ কনফিগার করতে আপনি কম্পোজেবলে পাস করা windowInsets প্যারামিটার পরিবর্তন করতে পারেন। এই প্যারামিটারটি পরিবর্তে প্রয়োগ করার জন্য একটি ভিন্ন ধরনের উইন্ডো ইনসেট হতে পারে, অথবা একটি খালি ইনস্ট্যান্স পাস করে অক্ষম করা হতে পারে: WindowInsets(0, 0, 0, 0).

যেমন, LargeTopAppBar-এ ইনসেট হ্যান্ডলিং বন্ধ করতে, windowInsets প্যারামিটারকে খালি ইনস্ট্যান্স হিসেবে সেট করুন:

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