1

私はAndroid2.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それとも適切に機能するようにする必要がありますか?

この例:例に従うことで、 FragmentActivityをインスタンス化できましたが、タブメニューの下の領域だけでなく、画面全体を占めています。

タブのコンテンツとして、フラグメントではなくアクティビティ(またはFragmentActivities)を使用する可能性はありますか?

4

1 に答える 1

0

私がやりたいことをする必要はありませんでした(タブのコンテンツとしてTabActivityを使用)。tabContent内に2つのコンテナーを配置することで問題を解決しました。1つはListViewフラグメント用で、もう1つはdetailsフラグメント用です。これが私のレイアウトです。

<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はGONEです。次のように使用できます。

        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 に答える