如何知道Android中是否出现键盘(dis)?

Pit*_*oid 7 keyboard android android-edittext

我有一个EditText,并希望在键盘出现时给它更多行.所以我正在寻找像"OnKeyboardAppearsListener"之类的东西,却无法找到它.我认为它必须存在,但也许以不同的方式......

Joa*_*oao 5

您必须@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();
    }
}
Run Code Online (Sandbox Code Playgroud)

这里取的例子.看看这里的有关(其中包括)键盘字段,你可能需要使用.


编辑(RivieraKid):更改为考虑硬盘或屏幕键盘.

  • 我试了一下,但是onConfigurationChanged方法永远不会被调用...在AndroidManifest.xml中我有android:configChanges ="keyboardHidden | keyboard" (6认同)
  • 这只适用于硬件键盘 - 没有给出软件键盘的通知:( (2认同)