3

内部在演示Support4Demos - API 4+ Support Demos,凸片和TabsPager例子都延伸FragmentActivity。每个标签内容本身就是一个片段。没有真正的突破,TabActivity在没有引入片段的情况下也以相同的方式使用。的Android 1.6 TabHost片段

现在假设在我的Activity中,屏幕部分是一个名为WidgetFragment的片段。 WidgetFragment如何包含TabHost?可视化包含在Activity中的迷你TabHost。 我尝试了所有可能的方式在片段中插入一个TabHost而不是FragmentActivity。

+0

而当你试图“无微不至”,发生了什么? – CommonsWare

+0

没有工作,这就是为什么我问:)。试图在Fragment内部实现它,就像在演示中的FragmentActivity内完成它一样。 –

+0

请定义“没有工作”。 – CommonsWare

回答

5

在普遍接受的惯例,标签适应整个屏幕。 大多数人(包括我)都不知道标签可以放在任何地方,就像一个简单的视图ListView。 诀窍是将您的TabHost包含在另一个布局中。当您创建TabHost,始终保持这些ID:tabhost,标签,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> 

在Support4Demos的标签和TabsPager例子看看好了,TabHost仍然由FragmentActivity管理。每个标签内容都是一个片段。随着TabActivity,也未必能在任何地方

在最后一个标签,这是什么样子

enter image description here