Mit der Jetpack-Bibliothek androidx.compose.material3
können Nutzer mit einem Eingabestift in jede TextField
-Komponente in jeder Anwendung schreiben.
Wenn Sie die Eingabe des Eingabestifts standardmäßig aktivieren möchten, fügen Sie die Bibliotheksabhängigkeit in die Datei build.gradle
Ihrer App ein:
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION" } kotlinOptions { jvmTarget = "LATEST_JVM_VERSION" } }
Groovig
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 Eingabe des Eingabestifts ist unter Android 14 und höher und der androidx.compose.foundation:foundation:1.7.0
-Abhängigkeit standardmäßig für alle TextField
-Komponenten aktiviert. Der Handschriftmodus wird für TextField
gestartet, wenn innerhalb der handschriftlichen Bereiche der Komponente eine Bewegung des Eingabestifts erkannt wird.
Die Handschriftgrenzen umfassen 40 dp vertikalen und 10 dp horizontalen Abstand um das Eingabefeld.
![Eingabefeld mit umgebendem Rechteck, das die Grenzen für die Erkennung von Eingabestiftbewegungen angibt.](https://developer.android.google.cn/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=9&hl=de)
TextField
Komponenten.
Die Eingabe des Eingabestifts wird für TextField
-Felder nicht unterstützt, wenn der Editor für Eingabemethoden mit KeyboardType.Password
angefordert wird.
Eingabedelegierung
Apps können Platzhalter-UI-Elemente anzeigen, die wie Texteingabefelder aussehen, tatsächlich aber nur statische UI-Elemente ohne Texteingabefunktion sind. Ein gängiges Beispiel sind Suchfelder. Durch Tippen auf das statische UI-Element wird ein Übergang zu einer neuen UI ausgelöst, die ein funktionales Texteingabefeld für die Eingabe enthält.
Eingabedelegierung für Eingabestift
Verwenden Sie die APIs für die Handschriftdelegierung, um die Eingabe mit Eingabestift mit Eingabestiften für Platzhaltereingabefelder zu unterstützen (siehe handwritingDetector
und handwritingHandler
). Das Platzhalter-UI-Element ist so konfiguriert, dass Handschrift an ein funktionales Eingabefeld delegiert wird. Ein Implementierungsbeispiel finden Sie unter HandwritingDetectorSample.kt
.
Der Eingabestiftmodus wird gestartet, wenn das funktionale Eingabefeld hervorgehoben und ein InputConnection
erstellt wird.
Testen
Die Eingabestift-Handschrift wird unter Android 14 und höher mit einem kompatiblen Eingabestift-Eingabegerät und einem Eingabemethoden-Editor (IME), der die Android 14 Stylus Handschrift-APIs unterstützt, unterstützt.
Wenn Sie kein Eingabegerät für den Eingabestift haben, simulieren Sie die Eingabe mit dem Eingabestift auf jedem Gerät mit Root-Zugriff (einschließlich Emulatoren) mit den folgenden ADB-Befehlen (Android Debug Bridge):
// 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
Verwende zum Testen die Gboard-Betaversion, wenn du ein Gerät verwendest, das keinen Eingabestift unterstützt.
Weitere Informationen
- Material Design – Textfelder
- Nutzereingaben verarbeiten