我没有在另一台设备上试过这个,但我试图让一个活动在软键盘显示或隐藏时进行监听;
在我的清单中,我的应用程序节点和我的活动节点都包含这一行:
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|layoutDirection"
在我的活动中我只想:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Toast.makeText(this, "keyboard new config:"+newConfig.keyboardHidden, Toast.LENGTH_SHORT).show();
// Checks whether a hardware keyboard is available
if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
loginView_keyboardShowing.start();
Toast.makeText(this, "keyboard visible", Toast.LENGTH_SHORT).show();
} else if (newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_YES) {
loginView_keyboardHiding.start();
Toast.makeText(this, "keyboard hidden", Toast.LENGTH_SHORT).show();
}
}
但键盘进入或离开时没有任何反应..
任何想法为什么?
答案 0 :(得分:0)
那是因为这些都与输入法编辑器(a.k.a。,软键盘)无关。显示或删除输入法编辑器时,没有配置更改。
答案 1 :(得分:0)
以下是CommonsWare的回答。键盘或键盘更改键盘类型时会触发隐藏更改。例如,连接了外部键盘。如果显示(或隐藏)软件键盘,则不会触发此更改。
如果您想检测此类更改,请查看this thread