Biblioteka Jetpackandroidx.compose.material3 umożliwia użytkownikom pisanie na dowolnym komponencie TextField w dowolnej aplikacji za pomocą rysika.
Aby domyślnie włączyć wprowadzanie danych 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" } }
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
Pismo odręczne rysikiem jest domyślnie włączone we wszystkich komponentach TextField na urządzeniach z Androidem 14 lub nowszym oraz w przypadku zależności androidx.compose.foundation:foundation:1.7.0. Tryb pisma odręcznego jest uruchamiany w przypadku elementu TextField, gdy w jego obszarze pisma odręcznego zostanie wykryte zdarzenie ruchu rysika.
Obszar pisma odręcznego obejmuje 40 dp dopełnienia pionowego i 10 dp dopełnienia poziomego wokół pola wprowadzania.
TextField komponentów.
Pismo odręczne rysikiem nie jest obsługiwane w przypadku pól TextField, gdy edytor metody wprowadzania jest wywoływany za pomocą parametru KeyboardType.Password.
Przekazywanie danych wejściowych
Aplikacje mogą wyświetlać elementy interfejsu zastępczego, które wyglądają jak pola wprowadzania tekstu, ale w rzeczywistości są tylko statycznymi elementami interfejsu bez możliwości wprowadzania tekstu. Typowym przykładem są pola wyszukiwania. Kliknięcie statycznego elementu interfejsu powoduje przejście do nowego interfejsu, który zawiera aktywne pole wprowadzania tekstu.
Przekazywanie danych wejściowych z rysika
Użyj interfejsów API przekazywania pisma odręcznego, aby obsługiwać wpisywanie odręczne za pomocą rysika w polach wejściowych z tekstem zastępczym (patrz handwritingDetector i handwritingHandler). Element interfejsu z tekstem zastępczym jest skonfigurowany tak, aby przekazywać pismo odręczne do funkcjonalnego pola wejściowego. Przykładową implementację znajdziesz w sekcji HandwritingDetectorSample.kt.
Tryb pisma odręcznego rysikiem włącza się, gdy pole wprowadzania funkcji zyskuje fokus i tworzy element InputConnection.
Testowanie
Pismo odręczne za pomocą rysika jest obsługiwane na urządzeniach z Androidem 14 lub nowszym, które mają kompatybilne urządzenie wejściowe w postaci rysika i edytor metody wprowadzania (IME) obsługujący interfejsy API do pisma odręcznego za pomocą rysika w Androidzie 14.
Jeśli nie masz urządzenia wejściowego z rysikiem, możesz symulować wprowadzanie danych za pomocą rysika na dowolnym urządzeniu z dostępem do roota (w tym na emulatorach), używając 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 rysika, do testowania używaj wersji beta klawiatury Gboard.
Dodatkowe materiały
- Material Design – pola tekstowe
- Obsługa danych wejściowych użytkownika