সিস্টেম বার সুরক্ষা সম্পর্কে

আপনার অ্যাপটি SDK 35 বা তার পরবর্তী সংস্করণকে টার্গেট করলে, এজ-টু-এজ ইন্টিগ্রেশন বাধ্যতামূলক হয়ে যায় । সিস্টেম স্ট্যাটাস বার এবং জেসচার নেভিগেশন বারগুলো স্বচ্ছ হয়, কিন্তু তিন-বাটনের নেভিগেশন বারটি অর্ধস্বচ্ছ হয়। এটিকে পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ করতে enableEdgeToEdge কল করুন।

তবে, সিস্টেমের ডিফল্ট সেটিংস সব ক্ষেত্রে কার্যকর নাও হতে পারে। কখন স্বচ্ছ বা অর্ধস্বচ্ছ সিস্টেম বার ব্যবহার করার কথা বিবেচনা করা উচিত, সে সম্পর্কে একটি সার্বিক ধারণা পেতে অ্যান্ড্রয়েড সিস্টেম বার ডিজাইন নির্দেশিকা এবং এজ-টু-এজ ডিজাইন নির্দেশিকা দেখুন।

স্বচ্ছ সিস্টেম বার তৈরি করুন

অ্যান্ড্রয়েড ১৫ বা তার পরবর্তী সংস্করণ টার্গেট করে অথবা পূর্ববর্তী সংস্করণগুলোর জন্য ডিফল্ট আর্গুমেন্টসহ enableEdgeToEdge() কল করে একটি স্বচ্ছ জেসচার নেভিগেশন বার তৈরি করুন। তিন-বাটন নেভিগেশন বারের জন্য, Window.setNavigationBarContrastEnforced কে false সেট করুন, অন্যথায় একটি স্বচ্ছ স্ক্রিম প্রয়োগ করা হবে।

স্বচ্ছ সিস্টেম বার তৈরি করুন

একটি স্বচ্ছ স্ট্যাটাস বার তৈরি করতে, একটি কাস্টম কম্পোজেবল তৈরি করুন যা মূল কন্টেন্টের উপর ওভারল্যাপ করে এবং ইনসেট দ্বারা আবৃত অংশে একটি গ্রেডিয়েন্ট অঙ্কন করে।

class SystemBarProtectionSnippets : ComponentActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // enableEdgeToEdge sets window.isNavigationBarContrastEnforced = true
        // which is used to add a translucent scrim to three-button navigation
        enableEdgeToEdge()

        setContent {
            MyTheme {
                // Main content
                MyContent()

                // After drawing main content, draw status bar protection
                StatusBarProtection()
            }
        }
    }
}

@Composable
private fun StatusBarProtection(
    color: Color = MaterialTheme.colorScheme.surfaceContainer,
) {
    Spacer(
        modifier = Modifier
            .fillMaxWidth()
            .height(
                with(LocalDensity.current) {
                    (WindowInsets.statusBars.getTop(this) * 1.2f).toDp()
                }
            )
            .background(
                brush = Brush.verticalGradient(
                    colors = listOf(
                        color.copy(alpha = 1f),
                        color.copy(alpha = 0.8f),
                        Color.Transparent
                    )
                )
            )
    )
}

চিত্র ১. একটি অস্বচ্ছ স্ট্যাটাস বার।

অ্যাডাপ্টিভ অ্যাপের জন্য, এজ-টু-এজ ডিজাইনে যেমন দেখা যায়, সেই অনুযায়ী প্রতিটি পেনের রঙের সাথে মেলে এমন একটি কাস্টম কম্পোজেবল যুক্ত করুন। একটি স্বচ্ছ নেভিগেশন বার তৈরি করতে, Window.setNavigationBarContrastEnforced true-তে সেট করুন।