Android ICS 4.0将Flash WebView置于全屏调用hideAll方法?

时间:2012-02-07 18:34:50

标签: android webview

我刚刚做了一些调查尝试更新我的ICS应用程序。当通过html或长按flash内容将我的WebView Flash内容放入全屏时,整个内容在围绕Android ICS源搜索后就消失了我在

中找到了这个内容
android.webkit.PluginFullScreenHolder

PluginFullScreenHolder

public void show() {
    // Other plugins may attempt to draw so hide them while we're active.
    if (mWebView.getViewManager() != null)
        mWebView.getViewManager().hideAll();

    WebChromeClient client = mWebView.getWebChromeClient();
    client.onShowCustomView(mLayout, mOrientation, mCallback);
}

void hideAll() {
    if (mHidden) {
        return;
    }
    for (ChildView v : mChildren) {
        v.mView.setVisibility(View.GONE);
    }
    mHidden = true;
}

它基本上将我的整个WebView隐藏在全屏选择中,现在这不会发生在默认浏览器中,并且无法访问此方法。我该如何解决这个问题?

非常感谢任何帮助。

最佳

大卫

3 个答案:

答案 0 :(得分:0)

请在此处查看我的答案:

flash player crashes when trying to enter fullscreen mode android 4.0

这就是我解决这个问题的方法。希望它有所帮助。

答案 1 :(得分:0)

我通过覆盖onShowCustomView方法解决了上述问题。 请尝试这是否适合您。以下是我的代码。

mWebView.setWebChromeClient(new WebChromeClient(){

        public void onShowCustomView(View view, int requestedOrientation, WebChromeClient.CustomViewCallback callback){
            super.onShowCustomView(view, callback);   
            if(Build.VERSION.SDK_INT >=14) {
                if (view instanceof FrameLayout) {                  
                    base.addView(view, new FrameLayout.LayoutParams(
                    ViewGroup.LayoutParams.FILL_PARENT,
                    ViewGroup.LayoutParams.FILL_PARENT,
                    Gravity.CENTER));                   
                    base.setVisibility(View.VISIBLE);
                }
            }
        }

    });

答案 2 :(得分:0)

以Simon的答案为基础,我得到了它的工作。我有一个FrameLayout作为WebView的父级。这是西蒙答案的基础。在onCreate中,我构建了webview并将其添加到名为FrameLayout的{​​{1}}中。

mWebContainer