সমর্থন কীবোর্ড নেভিগেশন

কম্পোজ পদ্ধতিটি চেষ্টা করুন
জেটপ্যাক কম্পোজ হলো অ্যান্ড্রয়েডের জন্য প্রস্তাবিত UI টুলকিট। কম্পোজে কীভাবে টাচ ও ইনপুট ব্যবহার করতে হয় তা জানুন।

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

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

আপনার অ্যাপ পরীক্ষা করুন

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

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

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

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

    আপনার কাছে কিবোর্ডসহ কোনো হার্ডওয়্যার ডিভাইস না থাকলে, একটি ব্লুটুথ কিবোর্ড বা একটি ইউএসবি কিবোর্ড সংযোগ করুন।

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

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

    এমন কোনো দৃষ্টান্ত খুঁজে বের করুন যেখানে ফোকাস অপ্রত্যাশিতভাবে সরে যায়।

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

    এমন কোনো দৃষ্টান্ত খুঁজে বের করুন যেখানে ফোকাস অপ্রত্যাশিতভাবে সরে যায়।

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

ট্যাব নেভিগেশন পরিচালনা করুন

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

উদাহরণস্বরূপ, নিচের লেআউটটিতে দুটি বাটন ডানদিকে এবং একটি টেক্সট ফিল্ড দ্বিতীয় বাটনটির বামদিকে রয়েছে। প্রথম বাটন থেকে টেক্সট ফিল্ডে এবং তারপর দ্বিতীয় বাটনে ফোকাস পাঠানোর জন্য, লেআউটটিকে 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"
    ...  />

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

নিম্নলিখিত সম্পর্কিত উৎসসমূহ দেখুন: