Nutzer mit Android 14 (API-Level 34) und höher können in jede beliebige Texteingabe schreiben
in jeder App mit einem Eingabestift verwenden. Android-Texteingabefelder, einschließlich
EditText
-Komponenten und
WebView
Text-Widgets, Unterstützung
Eingabestift.
Wenn für Ihre App jedoch benutzerdefinierte Texteingabefelder erforderlich sind (siehe Benutzerdefinierter Text Bearbeiter) oder ein komplexes Layout mit Texteingabefeldern über einer Zeichenfläche hat, Ihre App anpassen müssen.
<ph type="x-smartling-placeholder">EditText
Unter Android 14 ist das Schreiben mit Eingabestift standardmäßig für alle EditText
-Felder aktiviert
und höher. Der Handschriftmodus wird für eine EditText
gestartet, wenn eine Eingabe per Eingabestift erfolgt
innerhalb der Handschriftgrenzen der Ansicht erkannt wird.
Die Handschriftgrenzen umfassen 40 dp vertikale und 10 dp horizontale Abstände
Abstand um die Ansicht. Passen Sie die Handschriftgrenzen mit
setHandwritingBoundsOffsets()
Handschrift deaktivieren mit
setAutoHandwritingEnabled(false)
Eingabedelegierung
In Apps können Platzhalter-UI-Elemente angezeigt werden, die wie Texteingabefelder aussehen, aber sind eigentlich nur statische UI-Elemente ohne Texteingabefunktion. Suche sind ein gängiges Beispiel. Durch Tippen auf das statische UI-Element wird ein Übergang ausgelöst auf eine neue Benutzeroberfläche, die ein funktionales Texteingabefeld für die Eingabe enthält.
<ph type="x-smartling-placeholder">Eingabe per Eingabestift delegieren
Verwenden Sie die APIs zur Handschriftdelegierung, um die Eingabe der Handschrift per Eingabestift in
Platzhalter-Eingabefelder (siehe
setHandwritingDelegatorCallback()
und
setIsHandwritingDelegate()
).
Das Platzhalter-UI-Element ist so konfiguriert, dass Handschrift an eine funktionale
Eingabefeld. Beispiel:
Kotlin
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback { showAndFocusDelegateInputField() } delegateInputField.setIsHandwritingDelegate(true) }
Java
if (Build.VERSION.SDK_INT >= 34) { placeholderInputField.setHandwritingDelegatorCallback(this::showAndFocusInputFieldDelegate); delegateInputField.setIsHandwritingDelegate(true); }
Durch Bewegung des Eingabestifts über dem Texteingabefeld des Platzhalters wird der Rückruf ausgelöst.
Der Callback löst den UI-Übergang aus, um die Funktionseingabe anzuzeigen und hervorzuheben.
ein. Die Callback-Implementierung entspricht
für einen Klick-Listener für das Platzhalterelement. Wenn das Eingabefeld für die Funktion
erstellt ein
InputConnection
,
Der Handschriftmodus für Eingabestifte wird gestartet.
Material Design
Die
com.google.android.material.search
Bibliothek die
SearchBar
und
SearchView
Kurse
um die Implementierung des Platzhalter-UI-Musters zu erleichtern.
Platzhalter und funktionale Suchansichten sind verknüpft mit
setUpWithSearchBar()
Die Handschriftdelegierung wird in der Material-Bibliothek ohne zusätzliche für Ihre App erforderlich sind.
Überschneidung mit Zeichenflächen
Wenn Ihre App eine Zeichenfläche mit einem Textfeld hat, das die Oberfläche überlagert, können Sie
muss möglicherweise die Eingabe per Eingabestift deaktivieren, damit der Nutzer zeichnen kann. Weitere Informationen finden Sie unter
setAutoHandwritingEnabled()
Testen
Die Eingabe per Eingabestift wird auf Geräten mit Android 14 und höher unterstützt, kompatiblen Eingabegerät und einer Eingabemethode Editor (IME) verwenden, unterstützt die Eingabestift-APIs für Android 14.
Wenn du kein Eingabegerät hast, kannst du die Eingabe per Eingabestift auf jedem beliebigen Gerät simulieren mit Root-Zugriff (einschließlich Emulatoren) über die folgende Android Debug Bridge (adb)-Befehlen:
// 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
Verwenden Sie zum Testen die Gboard-Betaversion, wenn Sie ein Gerät verwenden, das diese Funktion nicht unterstützt Eingabestift.
Weitere Informationen
- Material Design – Textfelder
- Benutzerdefinierte Texteditoren