0

私は最初のフラグメントから2番目のフラグメントを呼び出し、2番目のフラグメントを呼び出すときに2番目のフラグメントでレイアウトを膨らませています。最初のフラグメントのレイアウトも2番目のフラグメントレイアウトの背後の画面に表示されます。画面に 2 番目のレイアウトのみを表示したい。ここにコードがあります

android.support.v4.app.FragmentManager fm = getFragmentManager();
                facebookPictureShareFragment Picfragment = new facebookPictureShareFragment();
                 FragmentTransaction ft = fm.beginTransaction();
                 ft.add(((ViewGroup)getView().getParent()).getId(), Picfragment);
                 ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);

                 ft.commit(); 
4

2 に答える 2

0

ft.add を ft.replace に変更する必要があります。

add() は、フラグメントをアクティビティ状態に追加します。

交換()

コンテナに追加された既存のフラグメントを置き換えます。これは、同じ containerViewId で追加された現在追加されているすべてのフラグメントに対して remove(Fragment) を呼び出してから、ここで指定された同じ引数で add(int, Fragment, String) を呼び出すことと基本的に同じです。

于 2013-05-30T09:54:56.583 に答える
0

コールバックを使用して、このコードをフラグメント内ではなくアクティビティに挿入してみてください。詳細については、このリンクを確認してください。

Android フラグメント コールバック

一度に 1 つのフラグメントを表示する場合、Google は 1 つのアクティビティに対して 1 つのフラグメントを使用し、そのフラグメントをコンテナーとして使用することをお勧めします。EventCallbacks アプローチを使用すると、アクティビティが非常にシンプルになり、フラグメントを簡単に追加または削除できます。

于 2013-05-30T18:46:17.553 に答える