不需要做我想做的事(使用 TabActivity 作为选项卡的内容)。我通过在我的 tabContent 中有两个容器解决了这个问题,一个用于 ListView 片段,一个用于详细信息片段。这是我现在的布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" />
</HorizontalScrollView>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:fadingEdge="none" >
<FrameLayout
android:id="@+android:id/realtabcontent"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+android:id/details_container"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="1"
android:visibility="gone" />
</LinearLayout>
</LinearLayout>
最初,details_container已消失。您可以按以下方式使用它:
ft.replace(R.id.details_container, detailsFragment);
FrameLayout detailsLayout = (FrameLayout) mActivity.findViewById(R.id.details_container);
detailsLayout.setVisibility(View.VISIBLE);