A biblioteca
androidx.compose.material3
do Jetpack permite que os usuários gravem em qualquer componente TextField
em
qualquer app usando uma stylus.
Para ativar a entrada da stylus por padrão, adicione a dependência da biblioteca ao arquivo
build.gradle
do app:
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
A escrita à mão com a stylus está ativada por padrão para todos os componentes TextField
no
Android 14 e versões mais recentes e na
dependência
androidx.compose.foundation:foundation:1.7.0
. O modo de escrita à mão é iniciado para uma TextField
quando um evento de movimento da stylus
é detectado dentro dos limites de escrita à mão do componente.
Os limites de escrita à mão incluem 40 dp de padding vertical e 10 dp de padding horizontal ao redor do campo de entrada.
![Campo de entrada com retângulo ao redor indicando os limites para a detecção de eventos de movimento da stylus.](https://developer.android.google.cn/static/images/develop/ui/compose/touch-input/stylus-input/shared/edittext_handwriting_bounds.png?authuser=7&hl=pt-br)
TextField
.
A escrita à mão com a stylus não tem suporte em campos TextField
quando o editor de método
de entrada é solicitado com KeyboardType.Password
.
Delegação de entrada
Os apps podem mostrar elementos da interface de marcador de posição que parecem ser campos de entrada de texto, mas na verdade são apenas elementos estáticos da interface, sem recurso de entrada de texto. Os campos de pesquisa são um exemplo comum. Tocar no elemento estático da interface aciona uma transição para uma nova interface que contém um campo de entrada de texto funcional focado na entrada.
Delegação de entrada com a stylus
Use as APIs de delegação de escrita à mão para oferecer suporte à entrada de escrita à mão da stylus para
campos de entrada de marcadores de posição (consulte handwritingDetector
e
handwritingHandler
). O elemento da interface de marcador é
configurado para delegar a escrita à mão a um campo de entrada funcional. Para conferir um exemplo
de implementação, consulte
HandwritingDetectorSample.kt
.
O modo de escrita à mão com a stylus começa quando o campo de entrada funcional recebe foco e
cria um
InputConnection
.
Testes
A escrita à mão com a stylus pode ser usada em dispositivos Android 14 e versões mais recentes que tenham um dispositivo de entrada com stylus compatível e um editor de método de entrada (IME, na sigla em inglês) que oferece suporte às APIs de escrita à mão da stylus do Android 14.
Se você não tiver um dispositivo de entrada da stylus, simule a entrada em qualquer dispositivo com acesso raiz (incluindo emuladores) usando estes comandos do 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
Use o Gboard Beta para testes se você estiver usando um dispositivo que não oferece suporte à stylus.
Outros recursos
- Material Design: campos de texto (link em inglês)
- Processar entradas do usuário