的WebView成片段(android.support.v4) [英] WebView into a Fragment (android.support.v4)

查看:81
本文介绍了的WebView成片段(android.support.v4)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个选项卡菜单中使用 ViewPager 。每个标签包含碎片android.support.v4包(旧的SDK兼容)。其中一个片段是的WebView (名为 FragmentWeb ),我希望它留到寻呼机布局。问题是,当我的的WebView 膨胀时,它运行在全屏模式。

有没有办法让在我的标签网页浏览器?

感谢您

我的片段类: FragmentWeb.java

 公共类FragmentWeb扩展片段{

    公共查看onCreateView(LayoutInflater充气,容器的ViewGroup,捆绑savedInstanceState){
    查看MAINVIEW =(查看)inflater.inflate(R.layout.fragment_web,集装箱,假);
    的WebView web视图=(web视图)mainView.findViewById(R.id.webview);
    webView.loadUrl(http://www.google.com);
    返回MAINVIEW;
}
}
 

我的碎片的布局: fragment_web.xml

 < XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT>

    <的WebView
        机器人:ID =@ + ID / web视图
        机器人:layout_width =FILL_PARENT
        机器人:layout_height =FILL_PARENT/>

< / LinearLayout中>
 

解决方案

这可以通过添加以下code您onCreateView在您的片段code和嵌入WebViewClient调用来完成:

  webview.setWebViewClient(新MyWebViewClient());
            webview.getSettings()setPluginsEnabled(真)。
            。webview.getSettings()setBuiltInZoomControls(假);
            。webview.getSettings()setSupportZoom(假);
            。webview.getSettings()setJavaScriptCanOpenWindowsAutomatically(真正的);
            。webview.getSettings()setAllowFileAccess(真正的);
            webview.getSettings()setDomStorageEnabled(真)。
            webview.loadUrl(mTabURL);
        }
        返回伏;
    }


    公共类MyWebViewClient扩展WebViewClient {
        / *(非Java DOC)
         * @see android.webkit.WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,java.lang.String中)
         * /


        @覆盖
        公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){
            如果(url.endsWith(。MP4))
            {
                意向意图=新的意图(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse(URL),视频/ *);

                。view.getContext()startActivity(意向);
                返回true;
            }
            其他 {
                返回super.shouldOverrideUrlLoading(查看,网址);
            }
        }
 

I got a tab menu using a ViewPager. Each tab contains fragments from android.support.v4 package (compatibility with old SDKs). One of the fragment is a WebView (called FragmentWeb) and I want it to stay into the pager layout. The problem is when my WebView is inflated, it runs in fullscreen mode.

Is there a way to keep web browser under my tabs ?

Thank you

My Fragment Class : FragmentWeb.java

public class FragmentWeb extends Fragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainView = (View) inflater.inflate(R.layout.fragment_web, container, false);
    WebView webView = (WebView) mainView.findViewById(R.id.webview);
    webView.loadUrl("http://www.google.com");
    return mainView;
}
}

My Fragment's layout : fragment_web.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

解决方案

This can be done by adding the following code to your onCreateView within your fragment code and embedding a WebViewClient call:

                webview.setWebViewClient(new MyWebViewClient());
            webview.getSettings().setPluginsEnabled(true);
            webview.getSettings().setBuiltInZoomControls(false); 
            webview.getSettings().setSupportZoom(false);
            webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);   
            webview.getSettings().setAllowFileAccess(true); 
            webview.getSettings().setDomStorageEnabled(true);
            webview.loadUrl(mTabURL);       
        }
        return v;
    }


    public class MyWebViewClient extends WebViewClient {        
        /* (non-Java doc)
         * @see android.webkit.WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView, java.lang.String)
         */


        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.endsWith(".mp4")) 
            {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.parse(url), "video/*");

                view.getContext().startActivity(intent);
                return true;
            } 
            else {
                return super.shouldOverrideUrlLoading(view, url);
            }
        }

这篇关于的WebView成片段(android.support.v4)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆