我有一个使用ActionBar listnavigation的活动,其中Framelayout显示与点击的导航项相关联的片段。到目前为止,非常好。
其中一个片段的布局包含FragmentTabHost。具体来说,布局看起来像这样(简化):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="96dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="italic"
android:textSize="12sp"
android:text="@string/user_creation_date"/>
<TextView
android:id="@+id/user_joinDate"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textStyle="normal"
android:textSize="16sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/profile_header">
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_height="match_parent"
android:layout_width="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabWidget
android:id="@android:id/tabs"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0"/>
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
</RelativeLayout>
在我的片段中,我在“onActivityCreated”中初始化FragmentTabHost,如Android文档中所示。现在我的问题;当我尝试显示片段时收到以下错误:
E/AndroidRuntime(20242): FATAL EXCEPTION: main
E/AndroidRuntime(20242): java.lang.IllegalStateException: No tab known for tag null
我发现一个线程表明FragmentTabHost正在发生一些可疑的事情,但它没有回答我的问题/问题:Android FragmentTabHost - Not fully baked yet?
有没有人与FragmentTabHost有类似的经历? 有人可以解释这种行为吗?
注意:如果我将相同的片段(没有代码更改)包含在FragmentActivity的布局XML中(通过声明<fragment>
),我就不会遇到任何问题。