2012-02-14 4 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 소스의 자신의 사본.