إتاحة التنقل باستخدام لوحة المفاتيح

بالإضافة إلى أساليب الإدخال البسيطة، مثل لوحات المفاتيح على الشاشة، يتوافق Android مع لوحات المفاتيح الخارجية المتصلة بالجهاز. توفّر لوحة المفاتيح وضعًا ملائمًا لإدخال النص وطريقة تنقّل المستخدمين في تطبيقك والتفاعل معه. وعلى الرغم من أنّ معظم الأجهزة المحمولة باليد مثل الهواتف تستخدم اللمس كوضع أساسي للتفاعل، يشيع استخدام الأجهزة اللوحية والأجهزة المشابهة ويفضّل العديد من المستخدمين إرفاق ملحقات لوحة المفاتيح بها.

ونظرًا لأن المزيد من الأجهزة التي تعمل بنظام تشغيل Android تقدم هذا النوع من التجربة، فمن المهم تحسين تطبيقك لدعم التفاعل من خلال لوحة المفاتيح. يصف هذا المستند كيف يمكنك تحسين التنقل باستخدام لوحة المفاتيح.

اختبار تطبيقك

قد يكون المستخدمون قادرين مسبقًا على التنقل في تطبيقك باستخدام لوحة مفاتيح، لأنّ نظام Android يتيح معظم السلوكيات الضرورية تلقائيًا.

يمكن التركيز على جميع التطبيقات المصغّرة التفاعلية التي يوفّرها إطار عمل Android، مثل Button و EditText. وهذا يعني أنّه يمكن للمستخدمين التنقّل باستخدام أجهزة تحكّم مثل لوحة التحكّم أو لوحة المفاتيح، وأنّ كل أداة توهج أو تغيّر مظهرها عند اكتساب تركيز الإدخال.

لاختبار تطبيقك، نفِّذ الإجراء التالي:

  1. عليك تثبيت تطبيقك على جهاز يوفّر لوحة مفاتيح خارجية.

    إذا لم يكن لديك جهاز مزوّد بلوحة مفاتيح، يمكنك توصيل لوحة مفاتيح بلوتوث أو لوحة مفاتيح USB.

    يمكنك أيضًا استخدام محاكي Android:

    1. في مدير AVD، انقر على جهاز جديد أو اختَر ملفًا شخصيًا حاليًا وانقر على نسخ.
    2. في النافذة التي تظهر، تأكّد من تفعيل لوحة المفاتيح وDPad.
  2. لاختبار تطبيقك، استخدِم مفتاح Tab فقط للتنقّل بين واجهة المستخدم. التأكّد من التركيز على كل عنصر تحكّم في واجهة المستخدم على النحو المتوقّع

    ابحث عن أي حالات يتحرك فيها التركيز بطريقة غير متوقعة.

  3. ابدأ مرة أخرى من بداية التطبيق وتنقَّل عبر واجهة المستخدم باستخدام عناصر التحكم في الاتجاهات مثل مفاتيح الأسهم على لوحة المفاتيح. من كل عنصر يمكن التركيز عليه في واجهة المستخدم، اضغط على السهم المتّجه للأعلى والسهم المتّجه للأسفل ولليسار ولليمين.

    ابحث عن أي حالات يتحرك فيها التركيز بطريقة غير متوقعة.

إذا واجهت أي حالات لا يؤدي فيها الانتقال باستخدام مفتاح 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"
    ...  />

مراجع إضافية

ارجع إلى الموارد التالية ذات الصلة: