Input stilus di kolom teks

Library androidx.compose.material3 memungkinkan pengguna menulis ke komponen TextField mana pun di aplikasi mana pun menggunakan stilus.

Gambar 1. Input tulisan tangan dengan stilus.

Untuk mengaktifkan input stylus secara default, tambahkan dependensi library ke file build.gradle aplikasi Anda:

Kotlin

dependencies {
    implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION"
    }

    kotlinOptions {
        jvmTarget = "LATEST_JVM_VERSION"
    }
}

Groovy

dependencies {
    implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION'
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION'
    }

    kotlinOptions {
        jvmTarget = 'LATEST_JVM_VERSION'
    }
}

TextField

Tulisan tangan stilus diaktifkan untuk semua komponen TextField secara default di Android 14 dan yang lebih tinggi serta dependensi androidx.compose.foundation:foundation:1.7.0. Mode tulisan tangan dimulai untuk TextField saat peristiwa gerakan stylus terdeteksi dalam batas tulisan tangan komponen.

Batas tulisan tangan mencakup padding vertikal 40 dp dan padding horizontal 10 dp di sekitar kolom input.

Kolom input dengan persegi panjang di sekitarnya yang menunjukkan batas untuk deteksi peristiwa gerakan stylus.
Gambar 2. Batas tulisan tangan komponen TextField.

Tulisan tangan stilus tidak didukung untuk kolom TextField saat editor metode input diminta dengan KeyboardType.Password.

Delegasi input

Aplikasi dapat menampilkan elemen UI placeholder yang tampak seperti kolom input teks, tetapi sebenarnya hanya elemen UI statis tanpa kemampuan input teks. Kolom penelusuran adalah contoh umum. Mengetuk elemen UI statis akan memicu transisi ke UI baru yang berisi kolom input teks fungsional yang difokuskan untuk input.

Gambar 3. Delegasi input dari elemen UI statis ke kolom input teks.

Delegasi input stilus

Gunakan API delegasi tulisan tangan untuk mendukung input tulisan tangan stylus untuk kolom input placeholder (lihat handwritingDetector dan handwritingHandler). Elemen UI placeholder dikonfigurasi untuk mendelegasikan tulisan tangan ke kolom input fungsional. Untuk contoh implementasi, lihat HandwritingDetectorSample.kt.

Mode tulisan tangan stylus dimulai saat kolom input fungsional mendapatkan fokus dan membuat InputConnection.

Gambar 4. Delegasi input stilus dari elemen UI statis ke kolom input teks.

Pengujian

Tulisan tangan stilus didukung di perangkat Android 14 dan yang lebih tinggi dengan perangkat input stilus yang kompatibel dan editor metode input (IME) yang mendukung API tulisan tangan stilus Android 14.

Jika Anda tidak memiliki perangkat input stilus, simulasikan input stilus di perangkat apa pun dengan akses root (termasuk emulator) menggunakan perintah Android Debug Bridge (adb) berikut:


// 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 versi beta Gboard untuk pengujian jika Anda menggunakan perangkat yang tidak mendukung stylus.

Referensi lainnya