Mit der Jetpack-Bibliothek androidx.compose.material3 können Nutzer mit einem Stylus in jede TextField-Komponente in jeder App schreiben.
Wenn Sie die Stifteingabe standardmäßig aktivieren möchten, fügen Sie die Bibliotheksabhängigkeit der Datei build.gradle Ihrer App hinzu:
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
Die Stifteingabe ist für alle TextField-Komponenten unter Android 14 und höher sowie für die androidx.compose.foundation:foundation:1.7.0-Abhängigkeit standardmäßig aktiviert. Der Handschriftmodus wird für ein TextField gestartet, wenn innerhalb der Handschriftgrenzen der Komponente ein Stiftbewegungsevent erkannt wird.
Die Begrenzungen für die Handschrift enthalten 40 dp vertikales und 10 dp horizontales Padding um das Eingabefeld.
TextField-Komponenten.
Das Schreiben mit Eingabestift wird für TextField-Felder nicht unterstützt, wenn der Eingabemethoden-Editor mit KeyboardType.Password angefordert wird.
Eingabeübertragung
Apps können Platzhalter-UI-Elemente anzeigen, die wie Texteingabefelder aussehen, aber tatsächlich nur statische UI-Elemente ohne Texteingabefunktion sind. Suchfelder sind ein häufiges Beispiel. Durch Tippen auf das statische UI-Element wird ein Übergang zu einer neuen Benutzeroberfläche ausgelöst, die ein funktionales Texteingabefeld enthält, das für die Eingabe fokussiert ist.
Delegierung der Eingabestifteingabe
Verwenden Sie die APIs zur Handschriftdelegierung, um die Eingabe von Handschrift mit einem Stylus für Platzhalter-Eingabefelder zu unterstützen (siehe handwritingDetector und handwritingHandler). Das Platzhalter-UI-Element ist so konfiguriert, dass die Handschrift an ein funktionales Eingabefeld delegiert wird. Ein Beispiel für die Implementierung finden Sie unter HandwritingDetectorSample.kt.
Der Stift-Handschriftmodus wird gestartet, wenn das funktionale Eingabefeld den Fokus erhält und ein InputConnection erstellt wird.
Testen
Die Handschrifteingabe mit dem Stylus wird auf Geräten mit Android 14 und höher unterstützt, die über ein kompatibles Stylus-Eingabegerät und einen IME (Input Method Editor) verfügen, der die Android 14-APIs für die Handschrifteingabe mit dem Stylus unterstützt.
Wenn Sie kein Eingabegerät mit Stift haben, können Sie die Stifteingabe auf jedem Gerät mit Root-Zugriff (einschließlich Emulatoren) mit den folgenden Android Debug Bridge-Befehlen (adb) simulieren:
// 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
Wenn Sie ein Gerät verwenden, das keinen Stylus unterstützt, können Sie die Gboard-Betaversion zum Testen verwenden.
Zusätzliche Ressourcen
- Material Design – Textfelder
- Nutzereingabe verarbeiten