2012-02-14 70 views
4

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

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

谢谢

我的片段类: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; 
} 
} 

我的碎片的布局: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> 

回答

6

这可以通过添加以下完成代码到您的片段代码中的onCreateView并嵌入WebViewClient拨打:

   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); 
      } 
     } 
7

你可以简单地通过更换当前实现WebViewFragment的适应您的需求:

import android.app.Fragment; 

通过

import android.support.v4.app.Fragment; 

在自己WebViewFragment.java源的副本。

相关问题