請檢查配置更改爲您的活動
這就爲您AndroidManifest.xml中
,這對您的活動類http://developer.android.com/reference/android/app/Activity.html#onConfigurationChanged(android.content.res.Configuration)
你會需要@Override公共方法onConfigurationChanged(android.content.res.Configuration)的活動,以便能夠處理,例如,這些值:
hardKeyboardHidden,
鍵盤,
keyboardHidden
對於所有可能的值檢查http://developer.android.com/reference/android/content/res/Configuration.html
你會看到有這樣的事情:
HARDKEYBOARDHIDDEN_NO
HARDKEYBOARDHIDDEN_UNDEFINED
HARDKEYBOARDHIDDEN_YES
KEYBOARDHIDDEN_NO
KEYBOARDHIDDEN_UNDEFINED
KEYBOARDHIDDEN_YES
KEYBOARD_12KEY
KEYBOARD_NOKEYS
KEYBOARD_QWERTY
KEYBOARD_UNDEFINED
也有,你將能夠讀取這樣的事情:
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.
UPDATE:
下面是具體例如什麼I'm談到:
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();
}
}
我相信這是這個問題的唯一解決方案 – 2011-05-01 12:08:17
這是要走的路,至少在Android 2.2和迄今爲止。真正的痛苦是沒有用於檢測軟鍵盤的API(並且就此而言,掌握了它的幻燈片動畫)。感謝你的回答! – 2011-09-01 01:43:39
爲什麼我只看到這一點?!花了很多時間嘗試使用onMeasure,onLayoutChange等等,而這是唯一可行的解決方案。最簡單的!多謝多啦A夢,哦,我的意思是@DiveInto。 :p – KarenAnne 2014-03-10 07:08:54