在一个只有底部导航栏的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中却能正常显示。我采用了网友的方法:
原来我使用的不是android.R.id.content这个值,而是设置到自己定义的一个。这样就能显示了,但是fragment的页面覆盖了底部的导航栏; 已解决: 在activity 的布局文件中,添加一个线性布局(也有朋友说加一行空白也行),加上id,然后传参到 fragmentTransaction.replace(R.id.showFrag, new O2OFragment());
的 第一个参数上,这样就好了;