main_activity的布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.demo9.MainActivity">
<FrameLayout
android:id="@+id/realTabcontent"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
android:id="@+id/tabHost"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
card.xml布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<TextView
android:text="选项"
android:id="@+id/cardTextTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
fragment_main.xml的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.demo9.MainActivity$PlaceholderFragment" >
<TextView
android:id="@+id/main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
代码正式开始
public class MainActivity extends ActionBarActivity {
private FragmentTabHost mTabHost;
private View mCard;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setTabHost();
}
private void setTabHost() {
//找到你的fragmentTabHost组件
mTabHost = (FragmentTabHost) findViewById(R.id.tabHost);
//初始化这个组件,调用setUp方法 , R.id.realTabcontent是 需要把视图加到那个容器的ID
mTabHost.setup(this, getSupportFragmentManager(), R.id.realTabcontent);
//下面得到选项卡视图
mCard = getCard("我的联系人");
//组件添加选项卡 (选项卡视图是添加到FragmentTabHost组件自己在布局文件的地方,多少大小组件自己会调节,在选项卡布局文件里一定要把内容居中)
mTabHost.addTab(mTabHost.newTabSpec("myContact").setIndicator(mCard),MainFragment.class,null);
mCard = getCard("陌生人");
mTabHost.addTab(mTabHost.newTabSpec("myStranger").setIndicator(mCard),MainFragment1.class,null);
mCard = getCard("好朋友");
mTabHost.addTab(mTabHost.newTabSpec("myFriend").setIndicator(mCard),MainFragment2.class,null);
}
private View getCard(String cardName) {
mCard = getLayoutInflater().inflate(R.layout.card, null);
TextView textView = (TextView) mCard.findViewById(R.id.cardTextTv);
textView.setText(cardName);
return mCard;
}
@Override
protected void onDestroy() {
mTabHost = null;
super.onDestroy();
}
}