首页 > 代码库 > 关于FragmentTabHost的使用
关于FragmentTabHost的使用
近期刚学了Fragment,突然想在Fragment中实现TabHost,查阅相关资料后发现现在TabHost已经被FragmentTabHost替代了,因此就想着学习一下,并记录下来,接下来把一些心得分享一下。
一、使用场景
首先FragmentTabHost不仅可以在FragmentActivity中使用,也可以在Fragment中使用,通过与Fragment的结合实现TabHost的效果
二、使用步骤
1、布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<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>
</RelativeLayout>
2、代码:
1)继承FragmentActivity——OnCreate()中:
FragmentTabHost fragmentTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
fragmentTabHost.setup(this, getFragmentManager(), R.id.realtabcontent);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab1").setIndicator("我的意 见"), SettingFragment.class, null);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab2").setIndicator("常见问 题"), NotificationFragment.class, null);
2)继承Fragment——OnCreateView()中:
View layout = inflater.inflate(R.layout.fragment_sliding_feedback, null);
FragmentTabHost fragmentTabHost = (FragmentTabHost)layout.findViewById(android.R.id.tabhost);
fragmentTabHost.setup(this, getChildFragmentManager(), R.id.realtabcontent);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab1").setIndicator("我的意 见"), SettingFragment.class, null);
fragmentTabHost.addTab(fragmentTabHost.newTabSpec("tab2").setIndicator("常见问 题"), NotificationFragment.class, null);
return layout;