Metin alanlarında ekran kalemi girişi

Jetpack androidx.compose.material3 kitaplığı, kullanıcıların ekran kalemi kullanarak tüm uygulamalardaki TextField bileşenlerine yazmalarına imkan tanır.

Şekil 1. Ekran kalemiyle el yazısıyla giriş.

Ekran kalemiyle girişi varsayılan olarak etkinleştirmek için kitaplık bağımlılığını uygulamanızın build.gradle dosyasına ekleyin:

Kotlin

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

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Modern

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

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.1"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

TextField

Android 14 ve sonraki sürümler ile androidx.compose.foundation:foundation:1.7.0 bağımlılığında tüm TextField bileşenleri için ekran kalemiyle el yazısı varsayılan olarak etkindir. Bileşenin el yazısı sınırları içinde ekran kalemi hareketi etkinliği algılandığında TextField için el yazısı modu başlatılır.

El yazısı sınırları, giriş alanının çevresinde 40 dp dikey dolgu ve 10 dp yatay dolgu içerir.

Ekran kalemi hareketi etkinliklerinin algılanmasına yönelik sınırları gösteren dikdörtgen içinde bir giriş alanı.
Şekil 2. TextField bileşenin el yazısı sınırı.

KeyboardType.Password ile giriş yöntemi düzenleyicisi istendiğinde TextField alanlarında ekran kalemiyle el yazısı desteklenmez.

Giriş yetkisi

Uygulamalar, metin giriş alanları gibi görünen yer tutucu kullanıcı arayüzü öğeleri görüntüleyebilir, ancak aslında metin giriş özelliği olmayan statik kullanıcı arayüzü öğeleridir. Arama alanları buna yaygın bir örnektir. Statik kullanıcı arayüzü öğesine dokunulduğunda, giriş için odaklanmış işlevsel bir metin giriş alanı içeren yeni bir kullanıcı arayüzüne geçişi tetikler.

Şekil 3. Statik kullanıcı arayüzü öğesinden metin giriş alanına giriş yetkisi.

Ekran kalemi giriş yetkisi

Yer tutucu giriş alanlarında ekran kalemiyle el yazısı girişini desteklemek için el yazısı yetkilendirme API'lerini kullanın (bkz. handwritingDetector ve handwritingHandler). Yer tutucu kullanıcı arayüzü öğesi, işlevsel bir giriş alanına el yazısı yetkisi vermek için yapılandırılmıştır. Örnek uygulama için HandwritingDetectorSample.kt adresini inceleyin.

Ekran kalemiyle el yazısı modu, işlevsel giriş alanı odaklanıp bir InputConnection oluşturduğunda başlar.

Şekil 4. Statik kullanıcı arayüzü öğesinden metin giriş alanına ekran kalemiyle giriş yetkisi.

Test etme

Ekran kalemiyle el yazısı, Android 14 ve sonraki sürümleri çalıştıran, uyumlu bir ekran kalemi giriş cihazı ve Android 14 ekran kalemi el yazısı API'lerini destekleyen bir giriş yöntemi düzenleyicisi (IME) bulunan cihazlarda desteklenir.

Ekran kalemi giriş cihazınız yoksa aşağıdaki Android Debug Bridge (adb) komutlarını kullanarak root erişimi olan (emülatörler dahil) tüm cihazlarda ekran kalemi girişini simüle edin:


// 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

Ekran kalemini desteklemeyen bir cihaz kullanıyorsanız test için Gboard beta sürümünü kullanın.

Ek kaynaklar