অঙ্গভঙ্গি নেভিগেশন সঙ্গে সামঞ্জস্য নিশ্চিত করুন

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

  • অ্যাপের কন্টেন্ট এক প্রান্ত থেকে অন্য প্রান্ত পর্যন্ত প্রসারিত করুন।
  • পরস্পরবিরোধী অ্যাপ জেসচারগুলো সামলান।

এছাড়াও, অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩)-এর মাধ্যমে ফোন, বড় স্ক্রিন এবং ফোল্ডেবল ডিভাইসের মতো অ্যান্ড্রয়েড ডিভাইসগুলোর জন্য একটি প্রেডিক্টিভ ব্যাক জেসচার চালু করা হয়েছে, যা একটি বহুবর্ষব্যাপী রিলিজের অংশ। অ্যাপ ডেভেলপাররা তাদের অ্যাপে এই প্রেডিক্টিভ ব্যাক জেসচারটি সাপোর্ট করে কিনা, তা নিশ্চিত করার জন্য পদক্ষেপ নিতে পারেন।

প্রান্ত থেকে প্রান্ত পর্যন্ত অ্যাপ সামগ্রী সরবরাহ করুন

ফ্লোটিং নেভিগেশন বারের মাধ্যমে উপলব্ধ অতিরিক্ত স্ক্রিন স্পেসের সুবিধা নিতে, আপনাকে আপনার অ্যাপে কিছু নির্দিষ্ট পরিবর্তন কনফিগার করতে হবে।

বিস্তারিত জানতে আপনার অ্যাপে ‘Display content edge-to-edge’ দেখুন।

অ্যাপের পরস্পরবিরোধী অঙ্গভঙ্গি পরিচালনা করুন

জেসচার নেভিগেশন মডেলটি অ্যাপ ডেভেলপারদের দ্বারা পূর্বে ব্যবহৃত জেসচারগুলোর সাথে সাংঘর্ষিক হতে পারে। এর ফলে আপনাকে আপনার অ্যাপের ইউজার ইন্টারফেসে কিছু পরিবর্তন আনতে হতে পারে।

পিছনের অঙ্গভঙ্গির সাথে দ্বন্দ্ব

ব্যাক করার জন্য নতুন সিস্টেম জেসচারটি হলো স্ক্রিনের বাম বা ডান প্রান্ত থেকে ভেতরের দিকে সোয়াইপ করা। এটি ঐসব অঞ্চলের অ্যাপ নেভিগেশন এলিমেন্টগুলোর কাজে বাধা সৃষ্টি করতে পারে। স্ক্রিনের বাম এবং ডান প্রান্তের এলিমেন্টগুলোর কার্যকারিতা বজায় রাখতে, সিস্টেমকে কোন কোন অঞ্চলে টাচ ইনপুট প্রয়োজন তা জানিয়ে ব্যাক জেসচারটি বেছে বেছে ব্যবহার করা থেকে বিরত থাকুন। অ্যান্ড্রয়েড ১০-এ চালু হওয়া View.setSystemGestureExclusionRects() API-তে একটি List<Rect> পাস করার মাধ্যমে আপনি এটি করতে পারেন androidx.core:core:1.1.0-dev01 সংস্করণ থেকে এই মেথডটি ViewCompat এও পাওয়া যায়।

উদাহরণস্বরূপ:

কোটলিন

var exclusionRects = listOf(rect1, rect2, rect3)

fun onLayout(
        changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

fun onDraw(canvas: Canvas) {
  // Update rect bounds and the exclusionRects list
  setSystemGestureExclusionRects(exclusionRects)
}

জাভা

List<Rect> exclusionRects;

public void onLayout(
        boolean changedCanvas, int left, int top, int right, int bottom) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

public void onDraw(Canvas canvas) {
    // Update rect bounds and the exclusionRects list
    setSystemGestureExclusionRects(exclusionRects);
}

হোম বা কুইক-সুইচ অঙ্গভঙ্গির সাথে দ্বন্দ্ব

হোম এবং কুইক সুইচের জন্য নতুন সিস্টেম জেসচার দুটিতেই স্ক্রিনের নিচের দিকে, আগে নেভিগেশন বার থাকা জায়গায় সোয়াইপ করতে হয়। অ্যাপগুলো এই জেসচারগুলো থেকে নিজেদের সরিয়ে নিতে পারে না, যেমনটা তারা ব্যাক জেসচারের ক্ষেত্রে পারে।

এই সমস্যাটি সমাধান করতে, অ্যান্ড্রয়েড ১০ WindowInsets.getMandatorySystemGestureInsets() API চালু করেছে, যা অ্যাপগুলোকে টাচ শনাক্তকরণের থ্রেশহোল্ড সম্পর্কে অবহিত করে।

গেম এবং অন্যান্য নন-ভিউ অ্যাপ

যেসব গেম এবং অন্যান্য অ্যাপে ভিউ হায়ারার্কি থাকে না, সেগুলোতে প্রায়শই ব্যবহারকারীকে সিস্টেম জেসচার এলাকার কাছাকাছি সোয়াইপ করতে হয়। সেইসব ক্ষেত্রে, গেমগুলো সিস্টেম জেসচারের জন্য সংরক্ষিত এলাকার সাথে ওভারল্যাপ করা অংশগুলোকে বাদ দিতে Window.setSystemGestureExclusionRects() ব্যবহার করতে পারে। গেমগুলোকে অবশ্যই নিশ্চিত করতে হবে যে, শুধুমাত্র প্রয়োজনের সময়, যেমন গেম খেলার সময়, এই এলাকাগুলোকে বাদ দেওয়া হয়।

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

প্রিডিক্টিভ ব্যাক জেসচার সমর্থন করার জন্য আপনার অ্যাপটি আপডেট করুন।

অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) ফোন, বড় স্ক্রিন এবং ফোল্ডেবল ডিভাইসের মতো অ্যান্ড্রয়েড ডিভাইসগুলোর জন্য একটি প্রেডিক্টিভ ব্যাক জেসচার চালু করেছে। এই প্রেডিক্টিভ ব্যাক জেসচারটি একটি বহু-বছরের রিলিজের অংশ। সম্পূর্ণরূপে বাস্তবায়িত হলে, এই ফিচারটি ব্যবহারকারীদের ব্যাক জেসচারটি পুরোপুরি সম্পন্ন করার আগেই তার গন্তব্য বা অন্য কোনো ফলাফল প্রিভিউ করার সুযোগ দেবে, যার ফলে তারা জেসচারটি চালিয়ে যাবেন নাকি বর্তমান ভিউতেই থাকবেন, সেই সিদ্ধান্ত নিতে পারবেন।

বিস্তারিত জানতে ‘প্রিডিক্টিভ ব্যাক জেসচারের জন্য সমর্থন যোগ করুন’ দেখুন।

অতিরিক্ত সম্পদ

জেসচার নেভিগেশন সম্পর্কে আরও জানতে, নিম্নলিখিতগুলি দেখুন:

ব্লগ পোস্ট

ভিডিও