উপাদান 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 দেখানো হয়েছে, যেখানে এজ-টু-এজ ডিসপ্লে নিষ্ক্রিয় এবং সক্রিয় করা হয়েছে:

সিস্টেম UI থেকে আপনার UI-কে ভেতরের দিকে সরাতে এবং কাটআউট প্রদর্শন করতে Scaffold এর PaddingValues ​​প্যারামিটার ব্যবহার করাই সাধারণত যথেষ্ট। আপনার UI-তে অতিরিক্ত প্যাডিং প্রয়োগ এড়াতে Scaffold ব্যবহার করার সময় রুলার, প্যাডিং মডিফায়ার বা ইনসেট সাইজ মডিফায়ারের মতো অতিরিক্ত ইনসেট হ্যান্ডলিং পদ্ধতি ব্যবহার করা থেকে বিরত থাকুন।

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

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

উদাহরণস্বরূপ, LargeTopAppBar এ ইনসেট হ্যান্ডলিং নিষ্ক্রিয় করতে, windowInsets প্যারামিটারটিকে একটি খালি ইনস্ট্যান্সে সেট করুন:

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