सॉफ़्ट इनपुट के तरीकों के अलावा, जैसे कि ऑन-स्क्रीन कीबोर्ड, Android, डिवाइस से अटैच किए गए फ़िज़िकल कीबोर्ड के साथ भी काम करता है. कीबोर्ड, टेक्स्ट इनपुट के लिए एक सुविधाजनक मोड उपलब्ध कराता है. साथ ही, यह उपयोगकर्ताओं को आपके ऐप्लिकेशन पर नेविगेट करने और उससे इंटरैक्ट करने का एक तरीका भी देता है. हालांकि, ज़्यादातर हैंड-हेल्ड डिवाइस, जैसे कि फ़ोन, इंटरैक्शन के मुख्य मोड के तौर पर टच का इस्तेमाल करते हैं. वहीं, टैबलेट और इसी तरह के डिवाइस भी काफ़ी लोकप्रिय हैं. कई उपयोगकर्ता, इनसे कीबोर्ड ऐक्सेसरी अटैच करना पसंद करते हैं.
ज़्यादा से ज़्यादा Android डिवाइस इस तरह का अनुभव उपलब्ध कराते हैं. इसलिए, यह ज़रूरी है कि आप अपने ऐप्लिकेशन को कीबोर्ड की मदद से इंटरैक्ट करने के लिए ऑप्टिमाइज़ करें. इस दस्तावेज़ में, कीबोर्ड की मदद से नेविगेट करने की सुविधा को बेहतर बनाने का तरीका बताया गया है.
अपने ऐप्लिकेशन का परीक्षण करें
हो सकता है कि उपयोगकर्ता, कीबोर्ड का इस्तेमाल करके आपके ऐप्लिकेशन पर पहले से ही नेविगेट कर पा रहे हों. ऐसा इसलिए, क्योंकि Android सिस्टम, ज़रूरी व्यवहारों में से ज़्यादातर को डिफ़ॉल्ट रूप से चालू रखता है.
Android फ़्रेमवर्क से उपलब्ध कराए गए सभी इंटरैक्टिव विजेट, जैसे कि Button और EditText पर फ़ोकस किया जा सकता है. इसका मतलब है कि उपयोगकर्ता, डी-पैड या कीबोर्ड जैसे कंट्रोल डिवाइस की मदद से नेविगेट कर सकते हैं. साथ ही, जब किसी विजेट पर इनपुट फ़ोकस किया जाता है, तो वह चमकता है या उसकी बनावट में बदलाव होता है.
अपने ऐप्लिकेशन की जांच करने के लिए, यह तरीका अपनाएं:
- अपने ऐप्लिकेशन को ऐसे डिवाइस पर इंस्टॉल करें जिसमें हार्डवेयर कीबोर्ड की सुविधा उपलब्ध हो.
अगर आपके पास कीबोर्ड वाला हार्डवेयर डिवाइस नहीं है, तो ब्लूटूथ कीबोर्ड या यूएसबी कीबोर्ड कनेक्ट करें.
Android एम्युलेटर का भी इस्तेमाल किया जा सकता है:
- AVD Manager में, या तो नया डिवाइस पर क्लिक करें या कोई मौजूदा प्रोफ़ाइल चुनें और क्लोन करें पर क्लिक करें.
- इसके बाद, स्क्रीन पर दिखने वाली विंडो में, पक्का करें कि कीबोर्ड और डीपैड चालू हों.
- अपने ऐप्लिकेशन की जांच करने के लिए, यूज़र इंटरफ़ेस (यूआई) पर नेविगेट करने के लिए सिर्फ़ Tab बटन का इस्तेमाल करें. पक्का करें कि यूज़र इंटरफ़ेस (यूआई) का हर कंट्रोल, उम्मीद के मुताबिक फ़ोकस हो.
ऐसे उदाहरण देखें जिनमें फ़ोकस, उम्मीद के मुताबिक न हो
- अपने ऐप्लिकेशन की शुरुआत से फिर से शुरू करें और कीबोर्ड पर मौजूद ऐरो बटन जैसे दिशा कंट्रोल का इस्तेमाल करके, यूज़र इंटरफ़ेस (यूआई) पर नेविगेट करें. अपने यूज़र इंटरफ़ेस (यूआई) में, फ़ोकस किए जा सकने वाले हर एलिमेंट से, Up, Down, Left, और Right बटन दबाएं.
ऐसे उदाहरण देखें जिनमें फ़ोकस, उम्मीद के मुताबिक न हो
अगर आपको ऐसे उदाहरण मिलते हैं जहां Tab बटन या दिशा कंट्रोल की मदद से नेविगेट करने पर, उम्मीद के मुताबिक काम नहीं होता, तो अपने लेआउट में यह बताएं कि फ़ोकस कहां होना चाहिए. इसके बारे में, अगले सेक्शन में बताया गया है.
टैब नेविगेशन को मैनेज करना
जब कोई उपयोगकर्ता, कीबोर्ड के 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" ... />
अन्य संसाधन
इनसे जुड़े संसाधन देखें: