কীবোর্ড নেভিগেশন কাজ করে

Compose-এর মাধ্যমে চেষ্টা করুন
Jetpack Compose হল Android-এর জন্য সাজেস্ট করা UI টুলকিট। Compose-এ কীভাবে টাচ ও ইনপুট ব্যবহার করতে হয় তা জানুন।

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

যেহেতু আরও বেশি Android-চালিত ডিভাইস এই ধরনের অভিজ্ঞতা অফার করে, তাই এটি গুরুত্বপূর্ণ যে আপনি কীবোর্ডের মাধ্যমে ইন্টার‍্যাকশন সাপোর্ট করার জন্য আপনার অ্যাপ অপ্টিমাইজ করুন। এই ডকুমেন্টে কীবোর্ডের সাহায্যে কীভাবে নেভিগেশন উন্নত করতে পারবেন তা বর্ণনা করা হয়েছে।

আপনার অ্যাপ টেস্ট করুন

ব্যবহারকারীরা হয়ত আগে থেকেই কীবোর্ড ব্যবহার করে আপনার অ্যাপ নেভিগেট করতে পারেন, কারণ Android সিস্টেম ডিফল্ট হিসেবে বেশিরভাগ প্রয়োজনীয় আচরণ চালু করে।

Android ফ্রেমওয়ার্কের মাধ্যমে প্রদান করা সব ইন্টার‍্যাক্টিভ উইজেট—যেমন Button এবং EditText—ফোকাস করা যায়। এর অর্থ হল ব্যবহারকারীরা ডি-প্যাড বা কীবোর্ডের মতো কন্ট্রোল ডিভাইসের সাহায্যে নেভিগেট করতে পারবেন এবং ইনপুট ফোকাস পেলে প্রতিটি উইজেট উজ্জ্বল হয়ে উঠবে বা অন্য কোনওভাবে তার রূপ পরিবর্তন করবে।

আপনার অ্যাপ পরীক্ষা করতে, নিম্নলিখিত পদ্ধতি অনুসরণ করুন:

  1. হার্ডওয়্যার কীবোর্ড আছে এমন ডিভাইসে আপনার অ্যাপ ইনস্টল করুন।

    কীবোর্ড সহ কোনও হার্ডওয়্যার ডিভাইস না থাকলে, ব্লুটুথ কীবোর্ড বা USB কীবোর্ড কানেক্ট করুন।

    এছাড়াও, আপনি Android এমুলেটর ব্যবহার করতে পারবেন:

    1. AVD ম্যানেজারে, নতুন ডিভাইস বিকল্পে ক্লিক করুন অথবা আগে থেকে থাকা কোনও প্রোফাইল বেছে নিয়ে ক্লোন করুন বিকল্পে ক্লিক করুন।
    2. যে উইন্ডোটি দেখা যাবে, সেখানে কীবোর্ড এবং DPad চালু আছে কিনা তা নিশ্চিত করুন।
  2. আপনার অ্যাপ পরীক্ষা করতে, UI-এর মাধ্যমে নেভিগেট করার জন্য শুধুমাত্র Tab কী ব্যবহার করুন। প্রতিটি UI কন্ট্রোল যাতে প্রত্যাশা অনুযায়ী ফোকাস পায় তা নিশ্চিত করুন।

    এমন কোনও ঘটনা ঘটেছে কিনা দেখুন যেখানে ফোকাস অপ্রত্যাশিতভাবে পরিবর্তিত হয়েছে।

  3. আপনার অ্যাপের শুরু থেকে আবার শুরু করুন এবং কীবোর্ডের তীরচিহ্ন কী-এর মতো দিকনির্দেশক কন্ট্রোল ব্যবহার করে আপনার UI-এর মাধ্যমে নেভিগেট করুন। আপনার UI-তে ফোকাস করা যায় এমন প্রতিটি এলিমেন্ট থেকে, উপর, নিচে, বাঁদিকে এবং ডানদিকে প্রেস করুন।

    এমন কোনও ঘটনা ঘটেছে কিনা দেখুন যেখানে ফোকাস অপ্রত্যাশিতভাবে পরিবর্তিত হয়েছে।

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

ট্যাব নেভিগেশন ম্যানেজ করুন

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

যেমন, নিম্নলিখিত লে-আউটে, দুটি বোতাম ডানদিকে এবং একটি টেক্সট ফিল্ড দ্বিতীয় বোতামের বাঁদিকে অ্যালাইন করা আছে। প্রথম বোতাম থেকে টেক্সট ফিল্ডে এবং তারপর দ্বিতীয় বোতামে ফোকাস স্থানান্তর করতে, লেআউটকে স্পষ্টভাবে প্রতিটি ফোকাসযোগ্য এলিমেন্টের জন্য ফোকাস অর্ডার android:nextFocusForward অ্যাট্রিবিউটের মাধ্যমে সংজ্ঞায়িত করতে হবে।

<androidx.constraintlayout.widget.ConstraintLayout ...>
    <Button
        android:id="@+id/button1"
        android:nextFocusForward="@+id/editText1"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        ... />
    <Button
        android:id="@+id/button2"
        android:nextFocusForward="@+id/button1"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/button1"
        ... />
    <EditText
        android:id="@id/editText1"
        android:nextFocusForward="@+id/button2"
        app:layout_constraintBottom_toBottomOf="@+id/button2"
        app:layout_constraintRight_toLeftOf="@id/button2
        ...  />
    ...
</androidx.constraintlayout.widget.ConstraintLayout>

এখন, ফোকাস button1 থেকে button2 এবং তারপর editText1-এ সরানোর পরিবর্তে, স্ক্রিনে যেভাবে দেখানো হয়েছে সেই অনুযায়ী এটি যথাযথভাবে সরে: button1 থেকে editText1 এবং তারপর button2।

দিকনির্দেশক নেভিগেশন হ্যান্ডেল করুন

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

কোনও নির্দিষ্ট দিকে নেভিগেট করার সময় সিস্টেম যদি উপযুক্ত ভিউতে ফোকাস না করে, তাহলে নিম্নলিখিত অ্যাট্রিবিউট ব্যবহার করে কোন ভিউতে ফোকাস করতে হবে তা নির্দিষ্ট করুন:

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

<Button
    android:id="@+id/button1"
    android:nextFocusRight="@+id/button2"
    android:nextFocusDown="@+id/editText1"
    ... />
<Button
    android:id="@id/button2"
    android:nextFocusLeft="@id/button1"
    android:nextFocusDown="@id/editText1"
    ... />
<EditText
    android:id="@id/editText1"
    android:nextFocusUp="@id/button1"
    ...  />

অতিরিক্ত রিসোর্স

নিম্নলিখিত সম্পর্কিত রিসোর্স দেখুন: