Biblioteka Jetpack androidx.compose.material3
umożliwia użytkownikom pisanie w dowolnym komponencie TextField
w dowolnej aplikacji za pomocą rysika.
Aby domyślnie umożliwić wprowadzanie tekstu za pomocą rysika, dodaj zależność biblioteki do pliku build.gradle
aplikacji:
Kotlin
dependencies { implementation("androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "LATEST_EXTENSION_VERSION" } kotlinOptions { jvmTarget = "LATEST_JVM_VERSION" } }
Odlotowy
dependencies { implementation 'androidx.compose.foundation:foundation:LATEST_COMPOSE_VERSION' } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = 'LATEST_EXTENSION_VERSION' } kotlinOptions { jvmTarget = 'LATEST_JVM_VERSION' } }
TextField
Pismo odręczne rysikiem jest domyślnie włączone we wszystkich komponentach TextField
na Androidzie 14 i nowszych oraz w zależności od androidx.compose.foundation:foundation:1.7.0
. Tryb pisma odręcznego w polu TextField
jest uruchamiany, gdy wykryte zostanie zdarzenie ruchu rysika w granicach pisma odręcznego komponentu.
Ograniczenia pisma odręcznego obejmują 40 dp pionowego dopełnienia i 10 dp poziomego dopełnienia wokół pola do wprowadzania danych.
![Pole do wprowadzania danych otoczone prostokątem, które wskazuje granice wykrywania zdarzeń ruchu rysika.](https://developer.android.com/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=7&hl=pl)
TextField
komponentach.
Pismo odręczne rysikiem nie jest obsługiwane w polach TextField
, gdy wymagane jest użycie edytora metod wprowadzania w KeyboardType.Password
.
Przekazywanie danych wejściowych
Aplikacje mogą wyświetlać zastępcze elementy interfejsu, które wyglądają jak pola do wprowadzania tekstu, ale w rzeczywistości są tylko statycznymi elementami interfejsu, które nie mają możliwości wprowadzania tekstu. Typowym przykładem są pola wyszukiwania. Kliknięcie statycznego elementu interfejsu uruchamia przejście do nowego interfejsu, który zawiera funkcjonalne pole do wprowadzania tekstu.
Przekazywanie dostępu do wprowadzania rysika
Używaj interfejsów API przekazywania pisma odręcznego, aby obsługiwać pismo odręczne rysikiem w zastępczych polach do wprowadzania danych (patrz handwritingDetector
i handwritingHandler
). Zastępczy element interfejsu jest skonfigurowany tak, aby przekazywać pismo odręczne do działającego pola do wprowadzania danych. Przykład implementacji znajdziesz w artykule HandwritingDetectorSample.kt
.
Tryb pisma odręcznego rysikiem uruchamia się, gdy funkcjonalne pole wejściowe zostanie zaznaczone i utworzy InputConnection
.
Testowanie
Pismo odręczne rysikiem jest obsługiwane na urządzeniach z Androidem 14 i nowszym wyposażonym w zgodne urządzenie wejściowe rysikiem oraz z edytorem metod wprowadzania (IME), który obsługuje interfejsy API pisma odręcznego rysikiem w Androidzie 14.
Jeśli nie masz urządzenia wejściowego rysika, wykonaj symulację wprowadzania rysika na dowolnym urządzeniu z dostępem roota (w tym emulatorami) za pomocą tych poleceń Android Debug Bridge (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
Jeśli używasz urządzenia, które nie obsługuje stylu, użyj Gboard w wersji beta do testów.
Dodatkowe materiały
- Material Design – pola tekstowe
- Obsługuj dane wejściowe użytkownika