2011-02-18 14 views

Respuesta

8

en su archivo de manifiesto, agregar esto a su actividad de definición: android:configChanges="keyboard|keyboardHidden"

y en su archivo Java Actividad, reemplazar el método onConfigurationChanged:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) { 
     //handle keyboard slide out event 
    } 
    else if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) 
     //handle keyboard slide in event 
    } 
} 

cuando un evento de teclado se activa en esta actividad, este método se ser llamado y puedes hacer lo que quieras.

+0

Gracias. En el emulador de Android, ¿cómo puedo emular el deslizamiento y el deslizamiento del teclado? – michael

+0

Funciona solo con teclado de hardware –

1

Sí en su anulación Actividad

public void onConfigurationChanged(Configuration newConfig){ 
    if(newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO){ 
     //slideout detected 
    } 
} 
2

Hay una transmisión ACTION_CONFIGURATION_CHANGED que puede escuchar. Las soluciones proporcionadas por @schwiz y @binnyb tienen un defecto importante: te obligan a ocuparte de todo el trabajo real del cambio de configuración. Eso puede ser necesario, pero es mucho mejor que no omita android:configChanges, y usando onSaveInstanceState() y onRetainNonConfigurationInstance() para manejar el cambio de configuración real.

Cuestiones relacionadas