首先创建一个XML布局,这个布局中包含TabHost的基本控件,你可以在FragmentTabHost标签上下增加些自己需要的控件。之后创建一个类继承FragmentActivity类,布局就是下面的XML。
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:orientation="horizontal" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
</android.support.v4.app.FragmentTabHost>
创建一个类继承Fragment类,这个类用于FragmentTabHost的内容展示,这里只是简单的TextView显示
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
textView=new TextView(getActivity());
textView.setText("FragmentStackSupport");
return textView;
}
@Override
public void onDestroyView() {
super.onDestroyView();
textView = null;
}
下面是添加其他的Fragment到FragmentManager下管理。
mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
/*1.addTab的第二个参数只能放继承Fragment的类
*2.setIndicator的参数可以放入一个LayoutInflater出的Viwe
* */
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
FragmentStackSupport.class, null);
mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
LoaderCursorSupport.class, null);
作者:黑卡米 原文地址: http://blog.youkuaiyun.com/aaren_jiang/article/details/8780401