Selain metode input virtual—seperti di layar keyboard—Android mendukung keyboard fisik yang terpasang ke perangkat. J keyboard menawarkan mode yang nyaman untuk input teks dan cara bagi pengguna untuk menavigasi dan berinteraksi dengan aplikasi Anda. Meskipun sebagian besar perangkat genggam seperti ponsel menggunakan sentuhan sebagai mode interaksi utama, tablet, dan sangat populer, dan banyak pengguna yang suka memasang aksesori {i>keyboard<i} ke mereka.
Karena semakin banyak perangkat yang didukung Android menawarkan pengalaman semacam ini, penting untuk Anda akan mengoptimalkan aplikasi untuk mendukung interaksi melalui keyboard. Ini dokumen ini menjelaskan bagaimana Anda dapat meningkatkan navigasi dengan keyboard.
Menguji aplikasi
Pengguna mungkin sudah dapat menavigasi aplikasi Anda menggunakan {i>keyboard<i}, karena sistem Android memungkinkan sebagian besar perilaku yang diperlukan secara default.
Semua widget interaktif yang disediakan oleh framework Android—seperti
Button
dan
EditText
—adalah
dapat difokuskan. Ini berarti pengguna dapat menavigasi dengan
perangkat kontrol seperti D-pad atau
keyboard khusus, dan setiap widget menyala atau mengubah tampilannya saat
mendapatkan fokus input.
Untuk menguji aplikasi Anda, lakukan prosedur berikut:
- Instal aplikasi Anda di perangkat yang menawarkan keyboard hardware.
Jika Anda tidak memiliki perangkat hardware dengan keyboard, hubungkan ke Bluetooth {i>keyboard<i} atau {i>keyboard<i} USB.
Anda juga dapat menggunakan emulator Android:
- Di AVD Manager, klik New Device atau pilih yang ada, lalu klik Clone.
- Di jendela yang muncul, pastikan Keyboard dan DPad sudah mengaktifkan pembuatan versi.
- Untuk menguji aplikasi Anda, hanya gunakan tombol Tab untuk melakukan navigasi
UI. Pastikan setiap kontrol UI mendapatkan fokus seperti yang diharapkan.
Cari kejadian ketika fokus bergerak secara tidak terduga. cara.
- Memulai lagi dari awal aplikasi dan menavigasi melalui UI
menggunakan kontrol arah seperti
tombol panah pada {i>keyboard<i}. Dari setiap
elemen yang dapat difokuskan di UI, tekan Up, Down,
Kiri, dan Kanan.
Cari kejadian ketika fokus bergerak secara tidak terduga. cara.
Jika Anda menemukan situasi ketika menavigasi dengan tombol Tab atau kontrol arah tidak melakukan apa yang Anda harapkan, tentukan tempat fokus harus ada di tata letak Anda, seperti yang dibahas di bagian berikut.
Menangani navigasi tab
Saat pengguna membuka aplikasi Anda menggunakan tombol Tab keyboard, sistem meneruskan fokus input di antara elemen berdasarkan urutannya muncul dalam tata letak. Jika Anda menggunakan tata letak relatif, misalnya, dan urutan berbeda di layar dengan urutan di dalam {i>file<i}, maka Anda mungkin perlu menentukan urutan fokus secara manual.
Misalnya, dalam tata letak berikut, dua tombol disejajarkan di sebelah kanan
dan bidang teks sejajar dengan
bagian kiri tombol kedua. Untuk lulus
fokus dari tombol pertama ke {i>field<i} teks dan kemudian ke tombol kedua,
harus secara eksplisit mendefinisikan urutan fokus untuk setiap elemen
elemen dengan
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>
Sekarang, alih-alih fokus berpindah dari button1
ke
button2
dan editText1
, lapisan ini akan bergerak dengan tepat
sesuai dengan tampilan di layar: dari button1
hingga
editText1
, lalu button2
.
Menangani navigasi terarah
Pengguna juga dapat menavigasi aplikasi Anda menggunakan tombol panah pada keyboard, yang berperilaku sama seperti saat menavigasi dengan D-pad atau trackball. Sistem memberikan "tebakan terbaik" tampilan mana yang harus difokuskan ke arah tertentu berdasarkan tata letak tampilan di layar. Namun, terkadang sistem tebakannya salah.
Jika sistem tidak meneruskan fokus ke tampilan yang sesuai saat melakukan navigasi dalam arah tertentu, menentukan tampilan mana yang harus menerima fokus dengan hal berikut atribut:
Setiap atribut menetapkan tampilan berikutnya yang akan menerima fokus saat pengguna membuka ke arah tersebut, seperti yang ditetapkan oleh ID tampilan. Hal ini ditunjukkan di contoh berikut:
<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" ... />
Referensi lainnya
Lihat referensi terkait berikut: