【问题标题】:How to know if keyboard (dis)appears in Android?如何知道键盘(dis)是否出现在Android中?
【发布时间】:2011-08-23 03:30:36
【问题描述】:

我有一个 EditText,想在键盘出现时给它更多行。 所以我正在寻找类似 "OnKeyboardAppearsListener" 的东西,但找不到。 我认为它一定存在,但也许以不同的方式......

【问题讨论】:

    标签: android keyboard android-edittext


    【解决方案1】:

    您必须 @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();
        }
    }
    

    示例取自 here。查看here 了解您可能想要使用的与键盘相关的(以及其他)字段。


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

    【讨论】:

    • 这仅适用于硬件键盘 - 没有通知软件键盘:(
    • 您可能希望将 newConfig.hardKeyboardHidden 更改为 newConfig.keyboardHidden,它也可以处理屏幕键盘。
    • 我试过了,但永远不会调用 onConfigurationChanged 方法...在 AndroidManifest.xml 我有 android:configChanges="keyboardHidden|keyboard"
    • configChanges 属性是否与清单中的正确活动相关联?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    • 2021-01-10
    • 1970-01-01
    相关资源
    最近更新 更多