在HoneyComb中的TabHost内部片段

时间:2011-12-26 09:34:25

标签: android android-3.0-honeycomb fragment

我目前已开始使用HoneyComb平板电脑的投资组合应用程序。我已经使用ActionBar.Tab在每个Tab的ActionBar和Fragment上实现了三个选项卡。三个选项卡名称关于,图库,设置。在Settings ActionBar.Tab中,我想要TabHost。 这意味着如何在Fragment中使用TabHost。提前感谢您的想法!!!

1 个答案:

答案 0 :(得分:3)

使用tabhost的布局(假设您将其定义为my_fragment_tabhost):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical">
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@android:id/tabhost"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
        <LinearLayout
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
            <TabWidget
                    android:id="@android:id/tabs"
                    android:visibility="gone"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"/>
            <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"/>
        </LinearLayout>
    </TabHost>
</LinearLayout>

在你的片段中,有一个TabHost成员变量并在onCreateView中获取它:

    private TabHost mTabHost;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.my_fragment_tabhost, container, false);
        mTabHost = (TabHost) view.findViewById(android.R.id.tabhost);
        mTabHost.setup();//very important to call this

        TabHost.TabSpec tab = mTabHost.newTabSpec("my tab content");
        tab.setIndicator("my tab content")
//... add your content by one of the tab.setContent() methods
        mTabHost.addTab(tab);
        return view;
    }