Klavyeyle gezinmeyi destekleme

Android, ekran klavyeleri gibi yumuşak giriş yöntemlerinin yanı sıra cihaza bağlı fiziksel klavyeleri de destekler. Klavye, metin girişi için kullanışlı bir mod ve kullanıcıların uygulamanızda gezinme ve etkileşimde bulunmaları için bir yol sunar. Telefon gibi çoğu elde kullanılan cihaz, birincil etkileşim modu olarak dokunmayı kullansa da tabletler ve benzer cihazlar popülerdir ve birçok kullanıcı bunlara klavye aksesuarları takmak ister.

Bu tür bir deneyim sunan Android destekli cihazların sayısı arttıkça uygulamanızı klavye üzerinden etkileşimi destekleyecek şekilde optimize etmeniz önemlidir. Bu dokümanda, klavyeyle gezinmeyi nasıl iyileştirebileceğiniz açıklanmaktadır.

Uygulamanızı test etme

Android sistemi gerekli davranışların çoğunu varsayılan olarak etkinleştirdiğinden, kullanıcılar zaten klavye kullanarak uygulamanızda gezinebilirler.

Android çerçevesi tarafından sağlanan Button ve EditText gibi tüm etkileşimli widget'lara odaklanılabilir. Bu, kullanıcıların D-pad veya klavye gibi kontrol cihazlarıyla gezinebileceği ve giriş odağını kazandığında her bir widget'ın parlayacağı veya görünümünü değiştirebileceği anlamına gelir.

Uygulamanızı test etmek için aşağıdaki prosedürü uygulayın:

  1. Uygulamanızı donanım klavyesi bulunan bir cihaza yükleyin.

    Klavyeli bir donanım cihazınız yoksa Bluetooth klavye veya USB klavye bağlayın.

    Ayrıca Android emülatörünü de kullanabilirsiniz:

    1. AVD Manager'da Yeni Cihaz'ı tıklayın veya mevcut bir profili seçip Klonla'yı tıklayın.
    2. Görüntülenen pencerede Klavye ve DPad'in etkinleştirildiğinden emin olun.
  2. Uygulamanızı test etmek amacıyla kullanıcı arayüzünde gezinmek için yalnızca Sekme tuşunu kullanın. Her kullanıcı arayüzü kontrolünün beklendiği gibi odaklandığından emin olun.

    Odağın beklenmedik bir şekilde hareket ettiği örnekleri arayın.

  3. Uygulamanızın başından tekrar başlayın ve klavyedeki ok tuşları gibi yön kontrollerini kullanarak kullanıcı arayüzünde gezinin. Kullanıcı arayüzünüzdeki her bir odaklanılabilir öğeden Yukarı, Aşağı, Sol ve Sağ tuşlarına basın.

    Odağın beklenmedik bir şekilde hareket ettiği örnekleri arayın.

Sekme tuşu veya yön kontrolleriyle gezinmenin beklediğiniz gibi olmadığı durumlarla karşılaşırsanız aşağıdaki bölümlerde açıklandığı gibi, odağın düzeninizde nerede olması gerektiğini belirtin.

Herkese açık kullanıcı adı sekmesinde gezinme

Bir kullanıcı klavyedeki Sekme tuşunu kullanarak uygulamanızda gezindiğinde, sistem giriş odağını öğelerin düzende göründükleri sıraya göre öğeler arasında iletir. Örneğin, göreli bir düzen kullanırsanız ve ekrandaki öğelerin sırası dosyadaki sıradan farklıysa odak sırasını manuel olarak belirtmeniz gerekebilir.

Örneğin, aşağıdaki düzende iki düğme sağ tarafa, bir metin alanı ise ikinci düğmenin soluna hizalanmıştır. Odağı ilk düğmeden metin alanına ve ardından ikinci düğmeye geçirmek için düzenin, android:nextFocusForward özelliğine sahip her odaklanılabilir öğenin odak sırasını açıkça tanımlaması gerekir.

<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>

Şimdi odak, button1 konumundan button2 ve ardından editText1 konumuna gitmek yerine ekrandaki görünüme uygun şekilde hareket ediyor: button1 ile editText1 arasında ve sonra button2.

Yönlü gezinmeyi tutma

Kullanıcılar, D-pad veya iztopu ile gezinirken olduğu gibi, klavyedeki ok tuşlarını kullanarak da uygulamanızda gezinebilirler. Sistem, ekrandaki görünümlerin düzenine bağlı olarak belirli bir yöne odaklanılacak görünüm hakkında bir "en iyi tahmin" sunar. Ancak bazen sistem yanlış tahminde bulunabilir.

Sistem, belirli bir yönde gezinirken odağı uygun görünüme geçirmezse aşağıdaki özellikleri kullanarak hangi görünüme odaklanılması gerektiğini belirtin:

Her özellik, kullanıcı görünüm kimliğinde belirtildiği gibi bir yöne gittiğinde odağı alacak bir sonraki görünümü belirler. Bu, aşağıdaki örnekte gösterilmiştir:

<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"
    ...  />

Ek kaynaklar

Aşağıdaki ilgili kaynaklara bakın: