উপাদান 3 ইনসেট ব্যবহার করুন

ব্যবহারের সুবিধার জন্য, অনেক বিল্ট-ইন ম্যাটেরিয়াল 3 কম্পোজেবল ( androidx.compose.material3 ) ইনসেটগুলি নিজেই পরিচালনা করে, যা ম্যাটেরিয়াল স্পেসিফিকেশন অনুসারে আপনার অ্যাপে কম্পোজেবলগুলি কীভাবে স্থাপন করা হয়েছে তার উপর ভিত্তি করে।

ইনসেট হ্যান্ডলিং কম্পোজেবল

নিচে উপাদান উপাদানগুলির একটি তালিকা দেওয়া হল যা স্বয়ংক্রিয়ভাবে ইনসেটগুলি পরিচালনা করে।

অ্যাপ বার

  • TopAppBar / SmallTopAppBar / CenterAlignedTopAppBar / MediumTopAppBar / LargeTopAppBar : সিস্টেম বারের উপরের এবং অনুভূমিক দিকগুলিকে প্যাডিং হিসেবে ব্যবহার করে কারণ এটি উইন্ডোর উপরে ব্যবহৃত হয়।
  • BottomAppBar : সিস্টেম বারের নীচের এবং অনুভূমিক দিকগুলিকে প্যাডিং হিসাবে প্রয়োগ করে।

কন্টেন্ট কন্টেইনার

  • ModalDrawerSheet / DismissibleDrawerSheet / PermanentDrawerSheet (একটি modal navigation drawer এর ভিতরের কন্টেন্ট): কন্টেন্টে উল্লম্ব এবং শুরুর ইনসেট প্রয়োগ করে।
  • 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 দেখানো হয়েছে যেখানে এজ-টু-এজ ডিসপ্লে অক্ষম এবং সক্রিয় রয়েছে:

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

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

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

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

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