1

我正在尝试在 android 2.2 - 4.0 上使用标签。我扩展了这个演示:http: //developer.android.com/resources/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentTabs.html

TabSpec ts = mTabHost.newTabSpec("randomTab");
Intent intent = new Intent();
intent.setClass(this, FragActiv.class);
ts.setContent(intent);
ts.setIndicator("randomTab");
mTabManager.addTab(ts, FragActiv.class, new Bundle());

但我不知道在onTabChanged中添加什么,所有的魔法都发生在演示中。

我需要做的是:
我有一个ListFragment,当单击一个项目时,它应该在一个单独的屏幕上以小屏幕/纵向显示详细信息,或者在大屏幕/横向显示一个片段,其中包含详细信息同一个屏幕。我可以使用 Fragments 解决这个问题,还是应该尝试FragmentActivities正常工作?

通过以下示例:example,我能够实例化一个FragmentActivity,但它占据了整个屏幕,而不仅仅是选项卡菜单下的区域。

是否有机会使用活动(或 FragmentActivities)而不是片段作为选项卡的内容

4

1 回答 1

0

不需要做我想做的事(使用 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);
于 2012-06-29T05:38:46.480 回答