1. 程式人生 > >WebView使用(一) 無法顯示內容、在fragment+activity中的使用

WebView使用(一) 無法顯示內容、在fragment+activity中的使用

在一個只有底部導航欄的activity中,動態切換4個fragment,在第一個fragment中我想使用一個webview載入後臺的H5頁面,就把WebView定義在了fragment的佈局檔案中,如下

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <WebView
        android:id="@+id/home_web"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</FrameLayout>


activity的webview部分程式碼 是 

 home_web = fView(R.id.home_web);
        //設定WebView屬性,能夠執行Javascript指令碼
        home_web.getSettings().setJavaScriptEnabled(true);
        home_web.loadUrl(UrlManager.HomeUrl);
        LogUtil.getInstance().Info("載入頁面");
        home_web.setWebViewClient(new HomeWebClient());
   public class HomeWebClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
以下是activity切換fragment的程式碼
fragmentTransaction = getFragmentManager().beginTransaction();
                fragmentTransaction.replace(R.id.showFrag, new O2OFragment());
                fragmentTransaction.commit();



 然而以上程式碼執行過後並沒有顯示 ,而放在activity中卻能正常顯示。我採用了網友的方法:

  1. getFragmentManager().beginTransaction().add(android.R.id.content,one,"qe").commit();  
原來我使用的不是android.R.id.content這個值,而是設定到自己定義的一個。這樣就能顯示了,但是fragment的頁面覆蓋了底部的導航欄;  已解決: 在activity 的佈局檔案中,新增一個線性佈局(也有朋友說加一行空白也行),加上id,然後傳參到
 fragmentTransaction.replace(R.id.showFrag, new O2OFragment());
的 第一個引數上,這樣就好了;