Android 14 (poziom interfejsu API 34) i nowsze umożliwiają użytkownikom wpisywanie tekstu przy każdym wpisywaniu tekstu
w dowolnej aplikacji za pomocą rysika. Pola do wprowadzania tekstu w Androidzie, w tym
EditText
i
Widżety tekstowe WebView
, obsługa
z użyciem rysika.
Jeśli jednak aplikacja wymaga niestandardowych pól do wprowadzania tekstu (zobacz Niestandardowy tekst redaktorów) lub ma złożony układ z polami do wprowadzania tekstu, które nakładają się na powierzchnię rysunku, dostosować aplikację do swoich potrzeb.
EditText
W Androidzie 14 pismo odręczne rysikiem jest domyślnie włączone we wszystkich polach EditText
i wyższe. Tryb pisma odręcznego jest włączany na urządzeniu EditText
po ruchu rysika
jest wykrywane w obszarze, który mieści się w granicach pisma odręcznego w tym widoku.
Granice pisma odręcznego obejmują 40 dp pionowego dopełnienia i 10 dp w poziomie.
dopełnienie wokół widoku. Dopasuj granice pisma odręcznego za pomocą:
setHandwritingBoundsOffsets()
Wyłącz pismo odręczne w
setAutoHandwritingEnabled(false)
Przekazywanie danych wejściowych
Aplikacje mogą wyświetlać zastępcze elementy interfejsu, które wyglądają jak pola do wprowadzania tekstu, ale są po prostu statycznymi elementami interfejsu, które nie mają możliwości wprowadzania tekstu. Szukaj to typowy przykład. Kliknięcie statycznego elementu interfejsu aktywuje przejście z nowym interfejsem, który zawiera funkcjonalne pole do wprowadzania tekstu.
Przekazywanie danych wejściowych rysikiem
Używaj interfejsów API przekazywania pisma odręcznego do obsługi wprowadzania pisma odręcznego rysikiem w przypadku:
zastępcze pola do wprowadzania danych (patrz
setHandwritingDelegatorCallback()
oraz
setIsHandwritingDelegate()
).
Zastępczy element interfejsu jest skonfigurowany tak, aby przekazywać pismo odręczne do funkcji
pole do wprowadzania danych, np.:
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); }
Ruch rysika po widoku pola do wprowadzania tekstu zastępczego wywołuje wywołanie zwrotne.
Wywołanie zwrotne aktywuje przejście w interfejsie w celu wyświetlenia i skoncentrowania funkcjonalnych danych wejściowych
. Implementacja wywołania zwrotnego jest zwykle taka sama jak implementacja
dla odbiornika kliknięć w elemencie zastępczym. Kiedy funkcjonalne pole do wprowadzania danych
tworzy
InputConnection
uruchamia się tryb pisma odręcznego rysikiem.
Material Design
com.google.android.material.search
zapewnia
SearchBar
i
SearchView
zajęć
aby ułatwić implementację zastępczego wzorca interfejsu.
Widoki zastępcze i funkcjonalne widoki wyszukiwania są powiązane z
setUpWithSearchBar()
Przekazywanie pisma odręcznego jest skonfigurowane w bibliotece materiałów bez dodatkowych wymaganych do tworzenia aplikacji.
Nakładanie się na powierzchnie do rysowania
Jeśli Twoja aplikacja ma powierzchnię do rysowania z polem tekstowym nakładającym się na powierzchnię,
może być konieczne wyłączenie pisma odręcznego rysikiem, aby użytkownik mógł rysować. Zobacz
setAutoHandwritingEnabled()
Testowanie
Pismo odręczne rysikiem jest obsługiwane na urządzeniach z Androidem 14 i nowszym zgodnego rysika i metody wprowadzania tekstu edytorem (IME), który obsługuje interfejsy API pisma odręcznego rysikiem w Androidzie 14.
Jeśli nie masz urządzenia wejściowego rysika, symuluj wprowadzanie nim na dowolnym urządzeniu z dostępem na poziomie roota (w tym za pomocą emulatorów) przy użyciu poniższego narzędzia 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
Używaj Gboard w wersji beta do testowania, jeśli używasz urządzenia, które nie obsługuje rysik.
Dodatkowe materiały
- Material Design – pola tekstowe
- Niestandardowe edytory tekstu