按下输入文本框时Android键盘不显示

Posted

技术标签:

【中文标题】按下输入文本框时Android键盘不显示【英文标题】:Android keyboard does not show when pressing input text box 【发布时间】:2011-06-06 02:54:57 【问题描述】:

我正在尝试在我的网页中实现一个带有搜索框的 iframe。

问题是我有一个来自一个域的网页假设这个页面是 http:///myPage.html 我在它的 html 中有一个 iframe 元素,它引用了不同域上的另一个 html。假设元素是这样的 /iframe_content.html">

在 http:///iframe_content.html 页面中,我有一个输入文本框,我想将其用作搜索框。

问题是,当我使用 android 2.2 浏览我的原始网页时,我看到了嵌入到我的 html 中的 iframe,当我按下输入文本框时,我没有看到 Android 浏览器应该提供的虚拟键盘以便在其中插入一些文本。

谁能帮忙?

【问题讨论】:

当您从同一个域提供输入文本框页面时会发生什么?键盘出现了吗? 【参考方案1】:

创建一个类并用 webview 扩展它

private class MwebViewClient extends WebViewClient 
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) 
            view.loadUrl(url);
            return true;
        
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) 
        super.onPageStarted(view, url, favicon);
        waitDialog = new ProgressDialog(context);
        waitDialog.setMessage("Loading Page...");
        waitDialog.setIndeterminate(true);
        waitDialog.show();
    

    @Override
    public void onPageFinished(WebView view, String url) 
        super.onPageFinished(view, url);
        if (waitDialog != null) 
            waitDialog.dismiss();
        
    

    @Override
    public void onScaleChanged(WebView view, float oldScale, float newScale) 
        super.onScaleChanged(view, oldScale, newScale);

//强制显示键盘,然后它会在任何文本字段按键时显示键盘

InputMethodManager inputMgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            inputMgr.toggleSoftInput(InputMethodManager.RESULT_UNCHANGED_SHOWN, InputMethodManager.RESULT_UNCHANGED_SHOWN);
        
    

现在,当您单击任何文本字段时,它都会显示键盘。第一次它可能会在没有任何用户交互的情况下在页面加载时显示键盘。

【讨论】:

以上是关于按下输入文本框时Android键盘不显示的主要内容,如果未能解决你的问题,请参考以下文章

android-edittext键盘不显示

Android软键盘的显示隐藏

单击嵌入式网络中的文本框时冻结的网络视图 - Android 4.3

专注于我们网站上的文本框时,在 iPad 上强制使用数字键盘

悲剧文本

【转】Android软键盘的全面解析