Klavyeyle gezinmeyi destekleme

Compose yöntemini deneyin
Jetpack Compose, Android için önerilen kullanıcı arayüzü araç setidir. Compose'da dokunma ve giriş işlemlerini nasıl kullanacağınızı öğrenin.

Android, dokunmatik klavyeler gibi yazılım giriş yöntemlerinin yanı sıra cihaza bağlı fiziksel klavyeleri de destekler. Klavye, metin girişi için uygun bir mod ve kullanıcıların uygulamanızda gezinip etkileşimde bulunabileceği bir yol sunar. Telefon gibi çoğu elde taşınabilir cihazda birincil etkileşim modu olarak dokunma kullanılsa da tabletler ve benzeri cihazlar popülerdir ve birçok kullanıcı bunlara klavye aksesuarları bağlamayı tercih eder.

Android destekli daha fazla cihaz bu tür bir deneyim sunduğundan uygulamanızı klavye üzerinden etkileşimi destekleyecek şekilde optimize etmeniz önemlidir. Bu belgede, 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 uygulamanızda klavye kullanarak gezinebiliyor olabilir.

Android çerçevesi tarafından sağlanan tüm etkileşimli widget'lar (ör. Button ve EditText) odaklanılabilir. Bu sayede kullanıcılar, D-pad veya klavye gibi kontrol cihazlarıyla gezinebilir. Her widget, giriş odağı kazandığında parlar veya görünümünü değiştirir.

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

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

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

    Android emülatörünü de kullanabilirsiniz:

    1. AVD Yöneticisi'nde New Device'ı (Yeni Cihaz) tıklayın veya mevcut bir profili seçip Clone'u (Klonla) tıklayın.
    2. Açılan pencerede Klavye ve DPad'in etkinleştirildiğinden emin olun.
  2. Uygulamanızı test etmek için kullanıcı arayüzünüzde gezinirken 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 şekilde değiştiği durumlar olup olmadığına bakı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ünüzde gezinin. Kullanıcı arayüzünüzdeki her odaklanılabilir öğeden Yukarı, Aşağı, Sol ve Sağ tuşlarına basın.

    Odağın beklenmedik şekilde değiştiği durumlar olup olmadığına bakın.

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

Sekmede gezinmeyi yönetme

Kullanıcı, klavyedeki Tab tuşunu kullanarak uygulamanızda gezinirken sistem, giriş odağını düzen içinde görünme sırasına göre öğeler arasında geçirir. Örneğin, göreli düzen kullanıyorsanı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. Odaklanmayı ilk düğmeden metin alanına ve ardından ikinci düğmeye geçirmek için düzenin, odaklanılabilir öğelerin her birinin odaklanma sırasını android:nextFocusForward özelliğiyle 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>

Artık odak, button1'dan button2'ye ve ardından editText1'ye gitmek yerine ekrandaki görünüme göre uygun şekilde hareket ediyor: button1'dan editText1'ye ve ardından button2'ye.

Yönlü gezinmeyi işleme

Kullanıcılar, uygulamanızda gezinmek için klavyedeki ok tuşlarını da kullanabilir. Bu tuşlar, D-pad veya trackball ile gezinirken olduğu gibi çalışır. Sistem, ekrandaki görünümlerin düzenine göre belirli bir yönde hangi görünüme odaklanılacağı konusunda "en iyi tahmini" sağlar. Ancak sistem bazen yanlış tahminde bulunabilir.

Sistem, belirli bir yönde gezinirken odağı uygun görünüme aktarmıyorsa aşağıdaki özelliklerle odağın hangi görünüme aktarılması gerektiğini belirtin:

Her özellik, kullanıcı o yönde gezinirken odaklanılacak bir sonraki görünümü, görünüm kimliğiyle belirtildiği şekilde tanımlar. Bu durum, aşağıdaki örnekte gösterilmektedir:

<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 göz atın: