অ্যান্ড্রয়েড প্ল্যাটফর্ম সিস্টেম ইউআই (UI), যেমন স্ট্যাটাস বার এবং নেভিগেশন বার, প্রদর্শনের জন্য দায়ী। ব্যবহারকারী কোন অ্যাপ ব্যবহার করছেন তা নির্বিশেষে এই সিস্টেম ইউআইটি প্রদর্শিত হয়।
WindowInsets সিস্টেম UI সম্পর্কে তথ্য প্রদান করে, যাতে আপনার অ্যাপটি সঠিক স্থানে ড্র হয় এবং আপনার UI সিস্টেম UI দ্বারা আবৃত না হয়ে যায়।

অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪) এবং এর নিচের সংস্করণগুলোতে, আপনার অ্যাপের ইউআই সিস্টেম বারের নিচে প্রদর্শিত হয় না এবং ডিফল্টভাবে কাটআউট দেখায়।
অ্যান্ড্রয়েড ১৫ (এপিআই লেভেল ৩৫) এবং এর পরবর্তী সংস্করণগুলোতে, আপনার অ্যাপটি এসডিকে ৩৫ টার্গেট করলে তা সিস্টেম বার এবং ডিসপ্লে কাটআউটের নিচে প্রদর্শিত হয়। এর ফলে ব্যবহারকারী আরও নির্বিঘ্ন অভিজ্ঞতা লাভ করেন এবং আপনার অ্যাপটি উইন্ডোতে উপলব্ধ সম্পূর্ণ জায়গার সদ্ব্যবহার করতে পারে।
সিস্টেম UI-এর পিছনে কন্টেন্ট প্রদর্শন করাকে 'গোয়িং এজ-টু-এজ' বলা হয়। এই পৃষ্ঠায়, আপনি বিভিন্ন ধরণের ইনসেট, কীভাবে 'গোয়িং এজ-টু-এজ' করতে হয় এবং আপনার UI-কে অ্যানিমেট করতে ও আপনার অ্যাপের কন্টেন্ট যাতে সিস্টেম UI এলিমেন্ট দ্বারা আবৃত না হয় তা নিশ্চিত করতে ইনসেট API কীভাবে ব্যবহার করতে হয়, সে সম্পর্কে জানতে পারবেন।
ইনসেট মৌলিক বিষয়গুলি
যখন কোনো অ্যাপ স্ক্রিনের এক প্রান্ত থেকে অন্য প্রান্ত পর্যন্ত বিস্তৃত হয়, তখন আপনাকে নিশ্চিত করতে হবে যেন গুরুত্বপূর্ণ বিষয়বস্তু এবং ইন্টারঅ্যাকশনগুলো সিস্টেম UI দ্বারা আবৃত না হয়ে যায়। উদাহরণস্বরূপ, যদি কোনো বাটন নেভিগেশন বারের পিছনে রাখা হয়, তাহলে ব্যবহারকারী হয়তো সেটি ক্লিক করতে পারবেন না।
সিস্টেম UI-এর আকার এবং এর অবস্থান সম্পর্কিত তথ্য ইনসেট-এর মাধ্যমে নির্দিষ্ট করা হয়।
সিস্টেম UI-এর প্রতিটি অংশের একটি সংশ্লিষ্ট ধরনের ইনসেট থাকে, যা এর আকার এবং অবস্থান বর্ণনা করে। উদাহরণস্বরূপ, স্ট্যাটাস বার ইনসেটগুলো স্ট্যাটাস বারের আকার ও অবস্থান নির্ধারণ করে, অন্যদিকে নেভিগেশন বার ইনসেটগুলো নেভিগেশন বারের আকার ও অবস্থান নির্ধারণ করে। প্রতিটি ধরনের ইনসেট চারটি পিক্সেল ডাইমেনশন নিয়ে গঠিত: টপ, লেফট, রাইট এবং বটম। এই ডাইমেনশনগুলো নির্দিষ্ট করে যে, অ্যাপ উইন্ডোর সংশ্লিষ্ট দিকগুলো থেকে সিস্টেম UI কতদূর পর্যন্ত বিস্তৃত হবে। সুতরাং, সেই ধরনের সিস্টেম UI-এর সাথে ওভারল্যাপ এড়ানোর জন্য, অ্যাপ UI-কে অবশ্যই সেই পরিমাণ ইনসেট করতে হবে।
এই বিল্ট-ইন অ্যান্ড্রয়েড ইনসেট টাইপগুলো WindowInsets মাধ্যমে পাওয়া যায়:
ইনসেটগুলোতে স্ট্যাটাস বারগুলোর বর্ণনা দেওয়া হয়েছে। এগুলো হলো সিস্টেমের উপরের UI বার, যেগুলোতে নোটিফিকেশন আইকন এবং অন্যান্য নির্দেশক থাকে। | |
স্ট্যাটাস বার ইনসেটগুলো দৃশ্যমান থাকাকালীন প্রদর্শিত হয়। যদি স্ট্যাটাস বারগুলো বর্তমানে লুকানো থাকে (ইমারসিভ ফুল স্ক্রিন মোডে প্রবেশের কারণে), তাহলে মূল স্ট্যাটাস বার ইনসেটগুলো খালি থাকবে, কিন্তু এই ইনসেটগুলো খালি থাকবে না। | |
নেভিগেশন বারগুলো বর্ণনা করে এমন ইনসেটগুলো। এগুলো হলো ডিভাইসের বাম, ডান বা নিচের দিকের সিস্টেম UI বার, যা টাস্কবার বা নেভিগেশন আইকনগুলো প্রদর্শন করে। ব্যবহারকারীর পছন্দের নেভিগেশন পদ্ধতি এবং টাস্কবারের সাথে মিথস্ক্রিয়ার ওপর ভিত্তি করে এগুলো রানটাইমে পরিবর্তিত হতে পারে। | |
নেভিগেশন বার ইনসেটগুলো দৃশ্যমান থাকাকালীন ব্যবহৃত হয়। যদি নেভিগেশন বারগুলো বর্তমানে লুকানো থাকে (ইমারসিভ ফুল স্ক্রিন মোডে প্রবেশের কারণে), তাহলে মূল নেভিগেশন বারের ইনসেটগুলো খালি থাকবে, কিন্তু এই ইনসেটগুলো খালি থাকবে না। | |
যদি উইন্ডোটি একটি ফ্রিফর্ম উইন্ডো হয়, যেমন টপ টাইটেল বার, তাহলে এর ভেতরের ইনসেটটি সিস্টেম UI উইন্ডোর সজ্জা বর্ণনা করে। | |
ক্যাপশন বারগুলো দৃশ্যমান থাকাকালীন ইনসেটগুলো। যদি ক্যাপশন বারগুলো বর্তমানে লুকানো থাকে, তাহলে মূল ক্যাপশন বারের ইনসেটগুলো খালি থাকবে, কিন্তু এই ইনসেটগুলো খালি থাকবে না। | |
সিস্টেম বার ইনসেটগুলোর সমষ্টি, যার মধ্যে স্ট্যাটাস বার, নেভিগেশন বার এবং ক্যাপশন বার অন্তর্ভুক্ত। | |
সিস্টেম বার ইনসেটগুলো দৃশ্যমান থাকাকালীন ব্যবহৃত হয়। যদি সিস্টেম বারগুলো বর্তমানে লুকানো থাকে (ইমারসিভ ফুল স্ক্রিন মোডে প্রবেশের কারণে), তাহলে মূল সিস্টেম বার ইনসেটগুলো খালি থাকবে, কিন্তু এই ইনসেটগুলো খালি থাকবে না। | |
ইনসেটগুলো নিচের দিকে সফটওয়্যার কিবোর্ডটি যে পরিমাণ জায়গা দখল করে, তা বর্ণনা করে। | |
বর্তমান কীবোর্ড অ্যানিমেশনের আগে সফটওয়্যার কীবোর্ডটি যে পরিমাণ জায়গা দখল করেছিল, তা এই ইনসেটগুলোতে বর্ণনা করা হয়েছে। | |
বর্তমান কিবোর্ড অ্যানিমেশনের পরে সফটওয়্যার কিবোর্ডটি যে পরিমাণ জায়গা দখল করবে, তা এই ইনসেটগুলোতে বর্ণনা করা হয়েছে। | |
এক ধরনের ইনসেট যা নেভিগেশন UI সম্পর্কে আরও বিস্তারিত তথ্য বর্ণনা করে এবং সেই স্থানের পরিমাণ নির্দেশ করে যেখানে "ট্যাপ" অ্যাপের পরিবর্তে সিস্টেম দ্বারা পরিচালিত হবে। জেসচার নেভিগেশন সহ স্বচ্ছ নেভিগেশন বারের ক্ষেত্রে, সিস্টেমের নেভিগেশন UI-এর মাধ্যমে অ্যাপের কিছু উপাদানে ট্যাপ করা যায়। | |
ট্যাপযোগ্য এলিমেন্টগুলো দৃশ্যমান থাকাকালীন তাদের ইনসেট। যদি ট্যাপযোগ্য এলিমেন্টগুলো বর্তমানে লুকানো থাকে (ইমারসিভ ফুল স্ক্রিন মোডে প্রবেশের কারণে), তাহলে মূল ট্যাপযোগ্য এলিমেন্ট ইনসেটগুলো খালি থাকবে, কিন্তু এই ইনসেটগুলো খালি থাকবে না। | |
এই ইনসেটগুলো সেই পরিমাণকে নির্দেশ করে যেখানে সিস্টেম নেভিগেশনের জন্য জেসচার ইন্টারসেপ্ট করবে। অ্যাপগুলো | |
সিস্টেম জেসচারগুলোর একটি উপসেট যা সিস্টেম দ্বারা সর্বদা পরিচালিত হবে, এবং যা | |
ডিসপ্লে কাটআউটের (নচ বা পিনহোল) সাথে ওভারল্যাপ এড়ানোর জন্য প্রয়োজনীয় ফাঁকা স্থানের পরিমাণ এই ইনসেটগুলো দ্বারা বোঝানো হয়েছে। | |
ইনসেটগুলো একটি ওয়াটারফল ডিসপ্লের বক্রাকার অংশগুলোকে উপস্থাপন করে। একটি ওয়াটারফল ডিসপ্লেতে স্ক্রিনের কিনারা বরাবর বক্রাকার অংশ থাকে, যেখানে স্ক্রিনটি ডিভাইসের পাশ বরাবর মোড়ানো শুরু করে। |
এই প্রকারগুলোকে তিনটি "নিরাপদ" ইনসেট টাইপের মাধ্যমে সংক্ষিপ্ত করা হয়, যা নিশ্চিত করে যে বিষয়বস্তু আবৃত না হয়:
এই "নিরাপদ" ইনসেট প্রকারগুলি অন্তর্নিহিত প্ল্যাটফর্ম ইনসেটগুলির উপর ভিত্তি করে বিভিন্ন উপায়ে বিষয়বস্তু সুরক্ষিত করে:
- যেসব কন্টেন্ট কোনো সিস্টেম UI-এর নিচে আঁকা উচিত নয়, সেগুলোকে সুরক্ষিত রাখতে
WindowInsets.safeDrawingব্যবহার করুন। ইনসেটের সবচেয়ে সাধারণ ব্যবহার হলো: সিস্টেম UI দ্বারা (আংশিকভাবে বা সম্পূর্ণরূপে) আবৃত কন্টেন্টের অঙ্কন রোধ করা। - জেসচারযুক্ত কন্টেন্ট সুরক্ষিত করতে
WindowInsets.safeGesturesব্যবহার করুন। এর ফলে সিস্টেম জেসচার এবং অ্যাপ জেসচারের (যেমন বটম শীট, ক্যারোসেল বা গেমের জেসচার) মধ্যে সংঘর্ষ এড়ানো যায়। - কন্টেন্টের মধ্যে যেন কোনো ভিজ্যুয়াল ওভারল্যাপ বা জেসচার ওভারল্যাপ না থাকে, তা নিশ্চিত করতে
WindowInsets.safeDrawingএবংWindowInsets.safeGesturesএর সমন্বয়েWindowInsets.safeContentব্যবহার করুন।
আপনার জন্য প্রস্তাবিত
- দ্রষ্টব্য: জাভাস্ক্রিপ্ট বন্ধ থাকলেও লিঙ্কের লেখা প্রদর্শিত হয়।
- উপাদান এবং বিন্যাস
-
CoordinatorLayoutকে Compose-এ স্থানান্তর করুন - অন্যান্য বিবেচ্য বিষয়