0

2つのフラグメントがあります。fragment2の下にfragment1があり、フラグメント1はフラグメント2よりも小さいです。

最初にフラグメント2を表示しますが、フラグメント1を表示する場合よりも、フラグメント2のすべてのボタンとリストを無効にしたいので、ユーザーはフラグメント1のみを制御できます。これを行うにはどうすればよいですか。

これが私のxmlです:

        <FrameLayout
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1.0" >
            <FrameLayout
                android:id="@+id/fragment2"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />

            <FrameLayout
                android:id="@+id/fragment1"
                android:layout_width="200dip"
                android:layout_height="200dip"
                android:visibility="gone" />
        </FrameLayout>
4

1 に答える 1

0

1 つの FrameLayout をコンテナーとして使用し、必要に応じてコードでフラグメントを置き換える方が簡単ではないでしょうか?

例えば:

<FrameLayout
    android:id="@+id/fragmentContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

そして、上記のレイアウトを含むアクティビティで:

if (showFragment1()) {
    getFragmentManager().beginTransaction().
        add(R.id.fragmentContainer, Fragment1.newInstance());
} else {
    getFragmentManager().beginTransaction().
        add(R.id.fragmentContainer, Fragment2.newInstance());
}

次に、フラグメント クラスで onActivityCreated コールバックを使用して、UI を初期化できます。

于 2012-06-05T15:25:31.310 に答える