【问题标题】:WebView into a Fragment (android.support.v4)WebView 成 Fragment (android.support.v4)
【发布时间】:2012-02-14 15:33:09
【问题描述】:

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

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

谢谢

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

【问题讨论】:

    标签: android webview fullscreen fragment


    【解决方案1】:

    您可以通过替换来简单地调整 WebViewFragment 的当前实现以适应您的需求:

    import android.app.Fragment;
    

    通过

    import android.support.v4.app.Fragment;
    

    在您自己的 WebViewFragment.java 源副本中。

    【讨论】:

      【解决方案2】:

      这可以通过将以下代码添加到片段代码中的 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);
                  }
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 2015-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-06
        相关资源
        最近更新 更多