的WebView成片段(android.support.v4) [英] WebView into a Fragment (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:机器人=http://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屋!