favor verifique cambios de configuración para su actividad
esto para su AndroidManifest.xml
y esto para su actividad clase http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration)
Se hará necesidad de @Override the public method onConfigurationChanged (android.content.res.Configuration) de su actividad a ser capaz de manejar, por ejemplo, los siguientes valores:
hardKeyboardHidden,
teclado,
keyboardHidden
Para todos valores posibles check http://developer.android.com/reference/android/content/res/Configuration.html
Verás algo como esto:
HARDKEYBOARDHIDDEN_NO
HARDKEYBOARDHIDDEN_UNDEFINED
HARDKEYBOARDHIDDEN_YES
KEYBOARDHIDDEN_NO
KEYBOARDHIDDEN_UNDEFINED
KEYBOARDHIDDEN_YES
KEYBOARD_12KEY
KEYBOARD_NOKEYS
KEYBOARD_QWERTY
KEYBOARD_UNDEFINED
También hay usted será capaz de leer algo como esto:
public int hardKeyboardHidden // A flag indicating whether the hard keyboard
// has been hidden.
public int keyboard The kind of keyboard attached to the device.
public int keyboardHidden A flag indicating whether any keyboard is available.
ACTUALIZACIÓN:
Aquí está un ejemplo específico de lo que estoy hablando:
http://developer.android.com/guide/topics/resources/runtime-changes.html
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden ==
Configuration.HARDKEYBOARDHIDDEN_YES) {
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
Creo que esta es la única solución a este problema –
Este es el camino a seguir, al menos en Android 2.2 y hasta la fecha. Es un verdadero dolor que no haya una API para detectar un teclado virtual (y para el caso, obtener un control sobre su animación de desplazamiento hacia arriba). ¡Gracias por la respuesta! –
¿Por qué veo esto solo ahora? Pasé mucho tiempo intentando usar onMeasure, onLayoutChange, etc., y esta es la única solución que funcionó. ¡Lo más simple también! Muchas gracias, Doraemon, oh, digo, @DiveInto. : p – KarenAnne