Input stilus di kolom teks

Jetpack androidx.compose.material3 library memungkinkan pengguna menulis ke komponen TextField apa pun di aplikasi apa pun menggunakan {i>stylus.<i}

Gambar 1. Input tulisan tangan dengan stilus.

Untuk mengaktifkan input stilus secara default, tambahkan dependensi library ke atribut File build.gradle:

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

Tulis tangan stilus diaktifkan untuk semua komponen TextField secara default aktif Android 14 dan yang lebih baru, serta androidx.compose.foundation:foundation:1.7.0 dependensi. Mode tulis tangan dimulai untuk TextField saat gerakan stilus terdeteksi dalam batas tulisan tangan komponen.

Batas tulisan tangan mencakup padding vertikal 40 dp dan horizontal 10 dp {i>padding<i} di sekitar bidang input.

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

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

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.

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

Delegasi input stilus

Gunakan API delegasi tulisan tangan untuk mendukung input tulis tangan stilus untuk kolom input placeholder (lihat handwritingDetector dan handwritingHandler) Elemen UI placeholder adalah dikonfigurasi untuk mendelegasikan tulisan tangan ke bidang input yang berfungsi. Untuk contoh implementasi, lihat HandwritingDetectorSample.kt

Mode tulis tangan stilus dimulai saat bidang input fungsional mendapatkan fokus dan membuat InputConnection

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

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