문제

In the demo Support4Demos - API 4+ Support Demos , the Tabs and TabsPager examples both extend FragmentActivity. Each tab content is itself a Fragment. No real breakthrough, TabActivity was used the same way without the introduction of Fragment.

Now suppose inside my Activity , a screen portion is a Fragment named WidgetFragment. How is it possible for WidgetFragment to contain a TabHost ? Visualize a mini TabHost contained inside an Activity. I tried every possible way to insert a TabHost inside a Fragment not a FragmentActivity.

도움이 되었습니까?

해결책

In generally accepted practices, Tabs fit the whole screen. Most people (including me) are unaware the tabs can be placed anywhere like a simple view, ListView. The trick is to include your TabHost inside another layout. When you create the TabHost, always keep these id : tabhost , tabs , tabcontent

In your main layout, include your tabhost.xml . Here I center the TabHost in the middle

<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>

Look well at the Tabs and TabsPager examples in Support4Demos , the TabHost is still managed by FragmentActivity. Each tab content is a fragment. With TabActivity, it may not be possible to have a tab anywhere

At the end, this is what it looks like

enter image description here

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top