بالإضافة إلى طرق الإدخال السلسة، مثل لوحات المفاتيح على الشاشة، يتيح نظام التشغيل Android استخدام لوحات المفاتيح الخارجية المتصلة بالجهاز. توفّر لوحة المفاتيح طريقة ملائمة لإدخال النصوص، كما تتيح للمستخدمين التنقّل والتفاعل مع تطبيقك. وعلى الرغم من أنّ معظم الأجهزة المحمولة، مثل الهواتف، تستخدم اللمس كطريقة أساسية للتفاعل، فإنّ الأجهزة اللوحية والأجهزة المشابهة شائعة، ويحب العديد من المستخدمين توصيل لوحات مفاتيح خارجية بها.
مع توفّر هذا النوع من التجارب على المزيد من الأجهزة التي تعمل بنظام التشغيل Android، من المهم تحسين تطبيقك ليتيح التفاعل من خلال لوحة المفاتيح. يوضّح هذا المستند كيف يمكنك تحسين التنقّل باستخدام لوحة المفاتيح.
اختبار تطبيقك
قد يتمكّن المستخدمون من التنقّل في تطبيقك باستخدام لوحة المفاتيح، لأنّ نظام التشغيل Android يتيح معظم السلوكيات اللازمة تلقائيًا.
جميع التطبيقات المصغّرة التفاعلية التي يوفّرها إطار عمل Android، مثل
Button و
EditText،
يمكن التركيز عليها. وهذا يعني أنّه يمكن للمستخدمين التنقّل باستخدام أجهزة تحكّم، مثل لوحة التحكّم الاتجاهية أو لوحة المفاتيح، وأنّ كل أداة تتوهّج أو يتغيّر مظهرها بطريقة أخرى عندما يصبح التركيز على الإدخال فيها.
لاختبار تطبيقك، اتّبِع الإجراء التالي:
- ثبِّت تطبيقك على جهاز يتضمّن لوحة مفاتيح خارجية.
إذا لم يكن لديك جهاز مزوّد بلوحة مفاتيح، وصِّل لوحة مفاتيح تعمل عبر البلوتوث أو لوحة مفاتيح USB.
يمكنك أيضًا استخدام محاكي Android:
- في "أداة إدارة أجهزة Android الافتراضية"، انقر على جهاز جديد أو اختَر ملفًا شخصيًا حاليًا وانقر على استنساخ.
- في النافذة التي تظهر، تأكَّد من تفعيل لوحة المفاتيح ولوحة الأزرار الاتجاهية.
- لاختبار تطبيقك، استخدِم مفتاح Tab فقط للتنقّل في واجهة المستخدم. تأكَّد من أنّ كل عنصر تحكّم في واجهة المستخدم يحصل على التركيز على النحو المتوقّع.
ابحث عن أي حالات يتحرّك فيها موضع التركيز بطريقة غير متوقّعة.
- ابدأ من جديد من بداية تطبيقك وتنقَّل في واجهة المستخدم
باستخدام عناصر التحكّم في الاتجاهات، مثل مفاتيح الأسهم على لوحة المفاتيح. من كل عنصر قابل للتركيز في واجهة المستخدم، اضغط على السهم المتّجه للأعلى والسهم المتّجه للأسفل والسهم المتّجه لليمين والسهم المتّجه لليسار.
ابحث عن أي حالات يتحرّك فيها التركيز بطريقة غير متوقّعة.
إذا واجهت أي حالات لا يؤدي فيها التنقّل باستخدام مفتاح 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" ... />
مراجع إضافية
يُرجى الاطّلاع على المراجع ذات الصلة التالية: