2010-11-24 19 views
6

Me gustaría conectar a un evento que se activa cuando aparece el teclado de la pantalla de Android. Por ejemplo, cuando el usuario toca EditText para que aparezca el teclado. ¿Alguien sabe qué evento (o oyente) usar?Android: ¿qué evento se dispara cuando aparece el teclado en pantalla?

Timo

+0

La documentación de Android hace referencia al método de InputMethodService onEvaluateInputViewShown(), que podría hacer lo que yo quisiera, pero parece que no puedo tomar una instancia de él. Intenté con InputMethodManager imm = (InputMethodManager) getSystemService (INPUT_METHOD_SERVICE); pero esa instancia no me ayuda a llegar a InputMethodService. – Pompair

Respuesta

0

No habrá una manera de determinar cuando el teclado aparece, pero si usted quiere comprobar cuando el usuario pulsa en una EditarTexto puede registrar un oyente o un clic onfocuschangedlistener a esa vista.

+1

Hola, gracias por la respuesta. Sin embargo, me niego a aceptar que esto sea la verdad final. =) – Pompair

+0

Los teclados suaves son parte del IME, y algunos no pueden "aparecer" (o incluso existir), especialmente en dispositivos con un teclado duro siempre expuesto. – Blrfl

+0

En el caso de Droid/Milestone, no puede saber si el OSK va a aparecer simplemente escuchando eventos EditText porque no sabrá si el teclado HW está apagado o no. – Juhani

1

Según el siguiente hilo de discusión en Android Developers Google Group, la única forma de resolver esto es escuchar el tamaño de los eventos modificados de la vista principal. El hilo es bastante viejo sin embargo. Me pregunto si alguna de las API más nuevas ha proporcionado una mejor manera.

http://groups.google.com/group/android-developers/browse_thread/thread/9d1681a01f05e782

El último mensaje explica una lógica detrás de una solución de trabajo.

Cuestiones relacionadas