2012-07-25 79 views
1

我有一个简单的应用程序,加载了一个HTML页面WebView。 该HTML页面仅包含input字段和iframe字段,iframe用于嵌入YouTube视频。Android 2.3在WebView中观看视频后,键盘停止弹出

<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页面时,我无法重现此操作。

任何人有任何想法是怎么回事,或者如果我能解决这个问题怎么样?

回答

0

可能的原因是这里所描述的错误: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; 
    } 
}); 
0

今天我有同样的问题。以下解决方案适用于我:

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

祝你好运!

+1

@Adi Inbar谢谢您的修改! – Ryan 2014-03-03 07:17:40