La biblioteca de androidx.compose.material3 de Jetpack permite a los usuarios escribir en cualquier componente TextField de cualquier app con una pluma stylus.
Para habilitar la entrada con lápiz óptico de forma predeterminada, agrega la dependencia de la biblioteca al archivo build.gradle de tu 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
La escritura a mano con lápiz stylus está habilitada de forma predeterminada para todos los componentes de TextField en Android 14 y versiones posteriores, y la dependencia de androidx.compose.foundation:foundation:1.7.0. El modo de escritura a mano se inicia para un TextField cuando se detecta un evento de movimiento del lápiz dentro de los límites de escritura a mano del componente.
Los límites de escritura a mano incluyen 40 dp de padding vertical y 10 dp de padding horizontal alrededor del campo de entrada.
TextField.
La escritura a mano con la pluma stylus no es compatible con los campos TextField cuando se solicita el editor del método de entrada con KeyboardType.Password.
Delegación de entrada
Las apps pueden mostrar elementos de IU de marcador de posición que parecen ser campos de entrada de texto, pero que en realidad son solo elementos de IU estáticos sin capacidad de entrada de texto. Los campos de búsqueda son un ejemplo común. Cuando se presiona el elemento de la IU estático, se activa una transición a una nueva IU que contiene un campo de entrada de texto funcional enfocado para la entrada.
Delegación de entrada de la pluma stylus
Usa las APIs de delegación de escritura a mano para admitir la entrada de escritura a mano con lápiz óptico en los campos de entrada de marcadores de posición (consulta handwritingDetector y handwritingHandler). El elemento de la IU del marcador de posición está configurado para delegar la escritura a mano en un campo de entrada funcional. Para ver un ejemplo de implementación, consulta HandwritingDetectorSample.kt.
El modo de escritura a mano con lápiz óptico se inicia cuando el campo de entrada funcional obtiene el enfoque y crea un InputConnection.
Prueba
La escritura a mano con lápiz stylus es compatible con dispositivos Android 14 y versiones posteriores que tengan un dispositivo de entrada con lápiz stylus compatible y un editor de métodos de entrada (IME) que admita las APIs de escritura a mano con lápiz stylus de Android 14.
Si no tienes un dispositivo de entrada con lápiz, simula la entrada con lápiz en cualquier dispositivo con acceso de raíz (incluidos los emuladores) con los siguientes comandos de 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
Usa la versión beta de Gboard para probar si usas un dispositivo que no admite lápices ópticos.
Recursos adicionales
- Material Design: Campos de texto
- Cómo controlar las entradas del usuario