onConfgurationchanged不能正常工作HTC-one android

时间:2014-01-06 19:08:45

标签: android android-keypad

我没有在另一台设备上试过这个,但我试图让一个活动在软键盘显示或隐藏时进行监听;

在我的清单中,我的应用程序节点和我的活动节点都包含这一行:

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();
        }
    }

但键盘进入或离开时没有任何反应..

任何想法为什么?

2 个答案:

答案 0 :(得分:0)

那是因为这些都与输入法编辑器(a.k.a。,软键盘)无关。显示或删除输入法编辑器时,没有配置更改。

答案 1 :(得分:0)

以下是CommonsWare的回答。键盘或键盘更改键盘类型时会触发隐藏更改。例如,连接了外部键盘。如果显示(或隐藏)软件键盘,则不会触发此更改。

如果您想检测此类更改,请查看this thread