2

我的 Android 应用程序中有一个 WebView,这给我带来了问题。起初没有正确处理箭头键的 keyDown 事件,我不得不抓住 keyDown 并使用这样的 Javascript 来正确处理它们:

    @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    Log.v(TAG, "KeyCode: " + keyCode + "    KeyEvent: " + event);
    switch(keyCode) {
    case 19: /* Up */
        this.loadUrl("javascript:editor.setCursor(editor.getCursor().line - 1, editor.getCursor().ch);");
    case 20: /* Down */
        this.loadUrl("javascript:editor.setCursor(editor.getCursor().line + 1, editor.getCursor().ch);");
    case 21: /* Left */
        this.loadUrl("javascript:editor.setCursor(editor.getCursor().line, editor.getCursor().ch - 1);");
    case 22: /* Right */
        this.loadUrl("javascript:editor.setCursor(editor.getCursor().line, editor.getCursor().ch + 1);");
    }
    return super.onKeyDown(keyCode, event);
}

但是现在我遇到了一个问题,每次我使用其中一个箭头键时,软键盘都会隐藏起来。

我在 Stackoverflow 上发现了另一个问题,这似乎是完全相同的问题,但没有人回答他:

防止按钮在 Android 上隐藏软键盘

有什么方法可以防止软键盘隐藏在我身上吗?

4

1 回答 1

0

因为 loadUrl/loadData/loadDataWithBaseUrl 在内部隐藏了软键盘。在用户键入他想要的所有内容之前,您不应该发送 javascript 事件。如果合适,请通过 javascript 处理事件。

于 2012-09-29T22:15:42.910 回答