Вы должны @ Override onConfigurationChanged
, чтобы иметь возможность обрабатывать изменения во время выполнения:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks whether a hardware or on-screen keyboard is available
if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) {
Toast.makeText(this, "Keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_YES) {
Toast.makeText(this, "Keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
Пример взят из здесь . Посмотрите здесь для полей, связанных с клавиатурой (среди прочих), которые вы, возможно, захотите использовать.
Редактировать (RivieraKid): изменен для учета жесткой или экранной клавиатуры.