এজ-টু-এজ সেট-আপ করা

এজ-টু-এজ ডিসপ্লে আপনার অ্যাপকে সিস্টেম বারের— স্ট্যাটাস বার, ক্যাপশন বার ও নেভিগেশন বার—পিছনে UI ড্র করার অনুমতি দেয়, যাতে আরও ইমারসিভ ব্যবহারকারীর অভিজ্ঞতা পাওয়া যায়। আপনি যদি Android 15 (API লেভেল 35) বা এর পরের যেকোনও ভার্সনে চলে এমন ডিভাইসকে টার্গেট করেন, তাহলে ডিফল্ট হিসেবে এজ-টু-এজ প্রয়োগ করা হয়।

সব Android ভার্সনে কন্টেন্ট সঠিকভাবে এজ-টু-এজ দেখাতে, এইসব সেট-আপ ধাপ অনুসরণ করুন। এইসব ধাপ অনুসরণ না করলে, আপনার অ্যাপ সিস্টেম বারের পিছনে একক রঙ দেখাতে পারে অথবা অন-স্ক্রিন কীবোর্ড (IME) ট্রানজিশনের সাথে সিঙ্ক্রোনাসভাবে কন্টেন্ট অ্যানিমেট নাও করতে পারে।

১. এজ-টু-এজ ডিসপ্লে চালু করা

আগের Android ভার্সনে এজ-টু-এজ চালু করতে, আপনার Activity.onCreate() পদ্ধতিতে enableEdgeToEdge() কল করুন:

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

ডিফল্ট হিসেবে, enableEdgeToEdge() সিস্টেম বারকে স্বচ্ছ করে তোলে, তবে ৩-বোতাম নেভিগেশন মোডে এটি নেভিগেশন বারে আরও ভালো কনট্রাস্টের জন্য একটি স্বচ্ছ স্ক্রিম প্রয়োগ করে। সিস্টেম আইকনের রঙ এবং স্ক্রিম সিস্টেমের লাইট বা ডার্ক থিমের সাথে মানিয়ে নেয়।

২. windowSoftInputMode কনফিগার করা

আপনার অ্যাক্টিভিটির AndroidManifest.xml এন্ট্রিতে android:windowSoftInputMode="adjustResize" সেট করুন। এই সেটিং আপনার অ্যাপকে IME ইনসেট পেতে দেয়, এর ফলে স্ক্রিনে দেখানো কীবোর্ড দেখা গেলে বা অদৃশ্য হয়ে গেলে আপনি প্যাডিংয়ের মাধ্যমে লেআউট অ্যাডজাস্ট করতে পারেন।

<!-- In your AndroidManifest.xml file: -->
<activity
  android:name=".ui.MainActivity"
  android:label="@string/app_name"
  android:windowSoftInputMode="adjustResize"
  android:theme="@style/Theme.MyApplication"
  android:exported="true">
  ...
</activity>

৩. ইনসেট ব্যবহার করে ওভারল্যাপ ম্যানেজ করা

এজ-টু-এজ চালু করা হয়ে গেলে, আপনার অ্যাপের কিছু কন্টেন্ট ও UI এলিমেন্ট সিস্টেম বারের পিছনে ড্র হতে পারে। সিস্টেম বার বা সিস্টেম জেসচারের কারণে গুরুত্বপূর্ণ বা ইন্ট্যার‍্যাক্টিভ এলিমেন্ট অস্পষ্ট হয়ে যাওয়া বা ওভারল্যাপ করা আটকাতে, আপনাকে ইনসেট ম্যানেজ করতে হবে।

ইনসেট স্ক্রিনের সেইসব অংশকে বর্ণনা করে যেগুলি সিস্টেম UI বা সিস্টেম জেসচারের সাথে ইন্টারসেক্ট করে। এজ-টু-এজ ডিসপ্লের জন্য ইনসেটের প্রধান ধরনগুলি হল:

  • সিস্টেম বার ইনসেট: এমন জায়গা দেখায় যেখানে সিস্টেম বার দেখানো হয়। সিস্টেম বার দ্বারা UI অস্পষ্ট হওয়া এড়াতে এগুলি ব্যবহার করুন।
  • ডিসপ্লে কাট-আউট ইনসেট: ডিভাইসের স্ক্রিনে ফিজিক্যাল কাট-আউট (যেমন, ক্যামেরা নচ) আছে এমন জায়গা দেখায়।

কম্পোজ করার সময়, আপনি ইনসেট সাইজ মডিফায়ার, প্যাডিং মডিফায়ার বা রুলার ব্যবহার করে ইনসেট ম্যানেজ করতে পারবেন। বিস্তারিত নির্দেশাবলীর জন্য উইন্ডো ইনসেট সম্পর্কে দেখুন।

উন্নত বিষয়

আরও উন্নত এজ-টু-এজ ব্যবহারের ক্ষেত্রে নিম্নলিখিত বিষয়গুলি বিবেচনা করুন।

ইমারসিভ মোড

ভিডিও বা ম্যাপের মতো কিছু কন্টেন্ট সম্পূর্ণ ইমারসিভ অভিজ্ঞতা থেকে উপকৃত হয় যেখানে সিস্টেম বার লুকানো থাকে। আপনি WindowInsetsControllerCompat ব্যবহার করে সিস্টেম বার লুকাতে পারবেন:

val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView)

// Hide the system bars.
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())

// Show the system bars.
windowInsetsController.show(WindowInsetsCompat.Type.systemBars())

সিস্টেম বারের রঙ ও আইকন

এজ-টু-এজ মোডে গেলে, আপনার অ্যাপের ব্যাকগ্রাউন্ড সিস্টেম বারের পিছনে দেখা যেতে পারে, তাই আরও ভাল কন্ট্রাস্টের জন্য আপনাকে সিস্টেম বার আইকনের রঙ অ্যাডজাস্ট করতে হতে পারে।

স্ট্যাটাস বার আইকনকে হালকা বা গাঢ় রঙে পরিবর্তন করতে, WindowInsetsControllerCompat ব্যবহার করুন:

// Set status bar icons to dark.
WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = true

// Set status bar icons to light.
WindowCompat.getInsetsController(window, window.decorView)
    .isAppearanceLightStatusBars = false

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

enableEdgeToEdge() ডিফল্ট হিসেবে স্বচ্ছ বা অর্ধস্বচ্ছ সিস্টেম বার দিলেও, আপনাকে এটি কাস্টমাইজ করতে হতে পারে। কখন স্বচ্ছ বারের পরিবর্তে আংশিক স্বচ্ছ বার ব্যবহার করতে হবে তা সিদ্ধান্ত নিতে Android সিস্টেম বার ডিজাইন নির্দেশিকা এবং এজ-টু-এজ ডিজাইন নির্দেশিকা দেখুন।

৩-বোতাম নেভিগেশন বারকে আংশিক স্বচ্ছ করার পরিবর্তে সম্পূর্ণ স্বচ্ছ করতে, আপনি কনট্রাস্ট এনফোর্সমেন্ট বন্ধ করতে পারেন:

window.isNavigationBarContrastEnforced = false

আরও তথ্যের জন্য, সিস্টেম বার সুরক্ষা সম্পর্কে দেখুন।