请检查配置更改为您的活动
这就为您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