Yumuşak giriş yöntemlerine ek olarak (ekranda olduğu gibi) klavyeler: Android, cihaza takılı fiziksel klavyeleri destekler. CEVAP klavye, metin girişi için kullanışlı bir mod ve kullanıcıların uygulamanızda gezinme ve etkileşim kurma. Örneğin, Telefonlarda birincil etkileşim modu olarak dokunmatik ekran, tabletler popüler cihazlardır ve birçok kullanıcı klavye aksesuarlarını gerekir.
Android destekli cihazların sayısı arttıkça bu tür bir deneyim sunmak klavye üzerinden etkileşimi destekleyecek şekilde optimize etmenizi öneririz. Bu dokümanında, klavyeyle gezinmeyi nasıl iyileştirebileceğiniz açıklanmaktadır.
Uygulamanızı test etme
Kullanıcılar klavye kullanarak uygulamanızda gezinebiliyor olabilir, çünkü Android sistemi, gerekli davranışların çoğunu varsayılan olarak etkinleştirir.
Android çerçevesi tarafından sağlanan tüm etkileşimli widget'lar;
Button
ve
EditText
-
odaklanılabilir. Bu, kullanıcıların D-pad gibi kontrol cihazlarıyla gezinebileceği anlamına gelir.
ve widget'lar üzerindeki her widget parlar veya görünümü başka bir şekilde
giriş odağı haline gelir.
Uygulamanızı test etmek için aşağıdaki prosedürü uygulayın:
- Uygulamanızı, donanım klavyesi bulunan bir cihaza yükleyin.
Klavyeli bir donanım cihazınız yoksa bir Bluetooth ya da USB klavye olması gerekir.
Android emülatörünü de kullanabilirsiniz:
- AVD Yöneticisi'nde Yeni Cihaz'ı tıklayın veya Mevcut profilinizi seçin ve Klonla'yı tıklayın.
- Görüntülenen pencerede Klavye ve DPad'in açık olduğundan emin olun etkin.
- Uygulamanızı test etmek için yalnızca Sekme tuşunu kullanarak
Kullanıcı arayüzü. Her kullanıcı arayüzü kontrolünün beklendiği gibi odaklandığından emin olun.
Odağın beklenmedik bir şekilde hareket ettiği durumları arayın şekilde ele alacağız.
- Uygulamanızın başından tekrar başlayın ve kullanıcı arayüzünde gezinin
klavyedeki ok tuşları gibi yön kontrollerini kullanın. Her birinden
odaklanılabilir öğe için Yukarı, Aşağı tuşlarına basın
Sol ve Sağ.
Odağın beklenmedik bir şekilde hareket ettiği durumları arayın şekilde ele alacağız.
Sekme tuşuyla gezinmede herhangi bir durumla karşılaşırsanız özelliklerinizin beklediğiniz gibi olmadığını düşünüyorsanız odağın aşağıdaki bölümlerde açıklandığı gibi sizin düzeninizde olmalıdır.
Sekmede gezinmeyi işleme
Kullanıcı, klavyenin Sekme tuşunu kullanarak uygulamanızda gezindiğinde, sistem, öğeler arasında giriş odağını bulundukları sıraya göre iletir. görünür. Örneğin, göreli bir düzen kullanırsanız ve öğe sıralaması dosyadakinden farklıysa odak sırasını manuel olarak belirtmeniz gerekebilir.
Örneğin, aşağıdaki düzende iki düğme sağa hizalanmıştır
bir metin alanı da ikinci düğmenin soluna hizalanır. Geçmek için
ilk düğmeden metin alanına, ardından ikinci düğmeye
düzeninin odaklanılabilir öğelerin her biri için odak sırasını
içeren
android:nextFocusForward
özelliğini gönderin.
<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 button1
ürününden
button2
ve ardından editText1
, uygun şekilde hareket ediyor
ekrandaki görünüme göre: button1
ile arasında
editText1
, ardından button2
.
Yönlü gezinmeyi işleme
Kullanıcılar klavyedeki ok tuşlarını kullanarak da uygulamanızda gezinebilirler. D-pad veya iztopuyla gezinmeyle aynı şekilde davranır. Sistem "en iyi tahmin" sağlar odaklanılacak görünüm için size yardımcı olabilir. Ancak bazen sistem, tahmin ettiniz.
Sistem, belirli bir bölmede gezinirken odağı uygun görünüme belirtilen yönde, aşağıdaki özellikler:
Her özellik, kullanıcı odaklanıldığında odaklanılacak bir sonraki görünümü görünüm kimliği tarafından belirtilen şekilde o yönde gezinir. Bu işlem şu örneği inceleyin:
<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: