TabHost внутри фрагмента в HoenyComb - PullRequest
0 голосов
/ 26 декабря 2011

Я запустил приложение для планшета HoneyComb. Я использовал ActionBar.Tab для реализации трех вкладок на панели действий и фрагмента для каждой вкладки. Три вкладки названия О, Галерея, Настройки. В настройках ActionBar.Tab я хочу иметь TabHost. Это означает, как иметь TabHost внутри фрагмента. Заранее спасибо за ваши идеи !!!

1 Ответ

3 голосов
/ 12 января 2012

Иметь макет с похожим на 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;
    }
...