【问题标题】:Android 2.3 Keyboard stops popping after after watching video in WebView在 WebView 中观看视频后,Android 2.3 键盘停止弹出
【发布时间】:2012-07-25 01:12:46
【问题描述】:

我有一个带有WebView 的简单应用程序,它加载了一个html 页面。 HTML 页面仅包含一个input 字段和一个iframe,其中iframe 用于嵌入youtube 视频。

<fieldset>
    <legend>Video Test</legend>
            <input type="text" id="text-callee-dataReceived" name="text-callee-dataReceived" size="80" value="" />
            <iframe class="youtube-player" type="text/html" width="100%" height="100%" src="http://www.youtube.com/embed/-qTIGg3I5y8" frameborder="0">
    </iframe>
</fieldset> 

当我点击输入字段时,键盘按预期出现。但是,当我先播放视频然后点击输入字段时,即使输入字段获得焦点(即光标出现在其中并闪烁),键盘也不会出现。

注意:当我使用 Android 浏览器访问 HTML 页面时,我无法重现此内容。

有人知道发生了什么,或者我是否可以解决这个问题?

【问题讨论】:

    标签: android input webview video-streaming


    【解决方案1】:

    也许原因是这里描述的错误:http://code.google.com/p/android/issues/detail?id=7189

    所以尝试以编程方式设置焦点:

    webview.requestFocus(View.FOCUS_DOWN);
    webview.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                case MotionEvent.ACTION_UP:
                    if (!v.hasFocus()) {
                        v.requestFocus();
                    }
                    break;
            }
            return false;
        }
    });
    

    【讨论】:

      【解决方案2】:

      我今天遇到了同样的问题。以下解决方案对我有用:

      mWebView.setWebViewClient(new WebViewClient() {
          @Override
          public void onPageFinished(WebView view, String url) {
              view.requestFocus();
              super.onPageFinished(view, url);
          }
      });
      

      祝你好运!

      【讨论】:

      • @Adi Inbar 感谢您的修改!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2017-01-09
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      • 1970-01-01
      相关资源
      最近更新 更多