কাটআউট সম্পর্কে

ডিসপ্লে কাটআউট হল কিছু ডিভাইসের এমন একটি অংশ যা ডিসপ্লে সারফেস পর্যন্ত বিস্তৃত। এটি ডিভাইসের সামনের দিকে গুরুত্বপূর্ণ সেন্সরের জন্য জায়গা প্রদান করার পাশাপাশি এজ-টু-এজ অভিজ্ঞতা প্রদান করে।

পোর্ট্রেট মোডে কাটআউটের উদাহরণ
ছবি ১. পোর্ট্রেট মোডে কাট-আউটের উদাহরণ
ল্যান্ডস্কেপ মোডে কাট-আউটের উদাহরণ
ছবি ২। ল্যান্ডস্কেপ মোডে কাট-আউটের উদাহরণ

Android 9 (API লেভেল ২৮) এবং তার পরবর্তী যেকোনও ভার্সনে চলে এমন ডিভাইসে Android ডিসপ্লে কাটআউট সাপোর্ট করে। তবে, ডিভাইস প্রস্তুতকারকরা Android 8.1 বা তার আগের ভার্সনে চলা ডিভাইসেও ডিসপ্লে কাটআউট সাপোর্ট করতে পারে।

Compose-এ কাটআউট সহ ডিভাইসের জন্য কীভাবে সহায়তা প্রয়োগ করতে হয় তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে, যার মধ্যে কাটআউট এরিয়া—অর্থাৎ, ডিসপ্লে সারফেসে কাটআউট সহ এজ-টু-এজ আয়তক্ষেত্র নিয়ে কীভাবে কাজ করতে হয় তা অন্তর্ভুক্ত।

ডিফল্ট কেস

API লেভেল ৩৪ বা তার কম টার্গেট করা অ্যাপ অথবা অ্যাক্টিভিটি যা enableEdgeToEdge কল করে না, সেগুলি ডিফল্ট হিসেবে কাটআউট অঞ্চলে ড্র করবে না, যদি না অ্যাপটি ডিসপ্লে কাটআউট সহ সিস্টেম বারে ড্র করে।

Android 15 বা তার পরবর্তী ভার্সন চলছে এমন ডিভাইসে API লেভেল ৩৫ বা তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপ অথবা enableEdgeToEdge কল করে এমন অ্যাক্টিভিটি কাটআউট অঞ্চলে ড্র করে।

অন্যভাবে বলতে গেলে, Android 15 বা তার পরবর্তী ভার্সনে চলা ডিভাইসে API লেভেল ৩৫ বা তার পরবর্তী ভার্সনকে টার্গেট করা অ্যাপে নন-ফ্লোটিং উইন্ডোর জন্য LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT, LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES এবং LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER-কে LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS হিসেবে ব্যাখ্যা করা হয়।

কাটআউট সংক্রান্ত তথ্য ম্যানুয়ালি ম্যানেজ করুন

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

Compose-এর জন্য, আমরা সাজেস্ট করি যে আপনার কম্পোজেবলে কাটআউট ইনসেট ম্যানেজ করতে displayCutout, safeContent, অথবা safeDrawing ব্যবহার করুন। এই পদ্ধতি আপনাকে প্রয়োজন হলে ডিসপ্লে কাট-আউট প্যাডিংকে সম্মান করতে দেয় অথবা প্রয়োজন না হলে সেটিকে উপেক্ষা করতে দেয়।

Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) {
    drawRect(Color.Red, style = Stroke(2.dp.toPx()))
}