Android 1.6 TabHost внутри фрагмента - PullRequest
3 голосов
/ 02 сентября 2011

В демонстрационной версии Support4Demos - демонстрационные версии поддержки API 4+ , примеры Tabs и TabsPager расширяют FragmentActivity. Каждая вкладка сама по себе является фрагментом. Никакого прорыва не произошло, TabActivity использовался таким же образом без введения Fragment.

Теперь предположим, что внутри моей Деятельности часть экрана представляет собой Фрагмент с именем WidgetFragment. Как WidgetFragment может содержать TabHost? Визуализируйте мини TabHost, содержащийся внутри Activity. Я пытался всеми возможными способами вставить TabHost внутри Fragment, а не FragmentActivity.

1 Ответ

5 голосов
/ 07 сентября 2011

В общепринятых практиках вкладки занимают весь экран.Большинство людей (включая меня) не знают, что вкладки можно разместить в любом месте, например, в простом представлении ListView.Хитрость заключается в том, чтобы включить ваш TabHost в другой макет.При создании TabHost всегда сохраняйте следующие идентификаторы: tabhost, tabs, tabcontent

В основной макет включите файл tabhost.xml.Здесь я центрирую TabHost по центру

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <!-- Fill whatever you need -->     
    <FrameLayout
        android:id="@+id/widget_fragment"
        android:layout_centerVertical="true" android:layout_centerHorizontal="true"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content">
        <include layout="@layout/tabhost" />
    </FrameLayout> 
</LinearLayout>

Хорошо посмотрите на примеры Tabs и TabsPager в Support4Demos, TabHost все еще управляется FragmentActivity.Содержание каждой вкладки является фрагментом.С TabActivity может быть невозможно иметь вкладку в любом месте

В конце это выглядит так

enter image description here

...