两个fragment的跳转不能使用startActivity,必须使用一下方法,fragment的跳转实际上就是在当前页面杀死当前的fragmetn,加载另一个fragment。
http://www.cnblogs.com/tittles0k/p/5864623.html
代码:
// android.support.v4.app.FragmentManager fm = getActivity().getSupportFragmentManager(); // Fragment fragment = new CategoryFragment(); // fm.beginTransaction().replace(R.id.realtabcontent,fragment).commit();
repleace()中的第一个容器,为fragmentlayout的id,如以下代码中的fragmentlayout
<?xml version="1.0" encoding="utf-8"?> <!--这个layout用于FragmentTabHost的布局--> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <!--backgrounf在style中修改背景颜色,minheight是最小高度--> <FrameLayout android:id="@+id/realtabcontent" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" /> <android.support.v4.app.FragmentTabHost android:id="@android:id/tabhost" android:layout_height="wrap_content" android:layout_width="match_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="0" /> </android.support.v4.app.FragmentTabHost> <!--dip和dp是一样的,不同设备有不同的显示效果,这个和设备硬件有关--> </LinearLayout>