Android 14 (level API 34) dan yang lebih baru memungkinkan pengguna menulis ke input teks apa pun
di aplikasi apa pun menggunakan stilus. Kolom entri teks Android, termasuk
dan komponen EditText
Widget teks WebView
, dukungan
input stilus secara default.
Namun, jika aplikasi Anda memerlukan kolom input teks kustom (lihat Teks kustom editor) atau memiliki tata letak kompleks dengan bidang entri teks yang berada di atas permukaan gambar, Anda akan perlu menyesuaikan aplikasi Anda.
EditText
Tulis tangan stilus diaktifkan untuk semua kolom EditText
secara default di Android 14
dan lebih tinggi. Mode tulis tangan dimulai untuk EditText
saat gerakan stilus
terdeteksi dalam batas tulisan tangan tampilan.
Batas tulisan tangan mencakup padding vertikal 40 dp dan horizontal 10 dp
padding di sekitar tampilan. Sesuaikan batas tulisan tangan dengan
setHandwritingBoundsOffsets()
Nonaktifkan tulisan tangan dengan
setAutoHandwritingEnabled(false)
![Kolom input dengan persegi panjang di sekitarnya yang menunjukkan batas untuk deteksi peristiwa gerakan stilus.](https://developer.android.com/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=0000&hl=id)
EditText
kolom.
Delegasi input
Aplikasi dapat menampilkan elemen UI placeholder yang tampak seperti kolom input teks tetapi sebenarnya hanyalah elemen UI statis tanpa kemampuan {i>input <i}teks. Telusuri {i>field<i} adalah contoh umumnya. Mengetuk elemen UI statis akan memicu transisi ke UI baru yang berisi kolom input teks fungsional yang difokuskan untuk input.
Delegasi input stilus
Gunakan API delegasi tulisan tangan untuk mendukung input tulis tangan stilus untuk
isian input placeholder (lihat
setHandwritingDelegatorCallback()
dan
setIsHandwritingDelegate()
)
Elemen UI placeholder dikonfigurasi untuk mendelegasikan tulisan tangan ke fungsi
bidang input, misalnya:
Kotlin
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback { showAndFocusDelegateInputField() } delegateInputField.setIsHandwritingDelegate(true) }
Java
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate); delegateInputField.setIsHandwritingDelegate(true); }
Gerakan stilus di atas tampilan kolom input teks placeholder akan memanggil callback.
Callback memicu transisi UI untuk menampilkan dan memfokuskan input fungsional
kolom tersebut. Implementasi callback biasanya sama dengan implementasi
untuk pemroses klik pada elemen placeholder. Kapan kolom input fungsi
membuat
InputConnection
,
mode tulis tangan stilus dimulai.
Desain Material
Tujuan
com.google.android.material.search
library menyediakan
SearchBar
dan
Kelas SearchView
untuk memfasilitasi implementasi
dari pola UI placeholder.
Placeholder dan tampilan penelusuran fungsional ditautkan dengan
setUpWithSearchBar()
Delegasi tulisan tangan dikonfigurasi di library Material tanpa tambahan pengembangan aplikasi yang diperlukan.
Tumpang-tindih dengan permukaan gambar
Jika aplikasi Anda memiliki platform gambar dengan kolom teks yang berada di atas permukaan tersebut, Anda
mungkin perlu menonaktifkan tulis tangan stilus agar pengguna dapat menggambar. Lihat
setAutoHandwritingEnabled()
Pengujian
Tulis tangan stilus didukung di perangkat Android 14 dan yang lebih tinggi dengan perangkat input stilus yang kompatibel dan metode input (IME) yang mendukung API tulis tangan stilus Android 14.
Jika Anda tidak memiliki perangkat input stilus, simulasikan input stilus di perangkat apa pun dengan akses root (termasuk emulator) menggunakan Android Debug Bridge berikut (adb):
// Android 14
adb shell setprop persist.debug.input.simulate_stylus_with_touch true && adb shell stop && adb shell start
// Android 15 and higher
// Property takes effect after screen reconfiguration such as orientation change.
adb shell setprop debug.input.simulate_stylus_with_touch true
Gunakan Gboard beta untuk menguji jika Anda menggunakan perangkat yang tidak mendukung stilus.
Referensi lainnya
- Desain Material — Kolom teks
- Editor teks kustom