web-dev-qa-db-ja.com

レイアウトのフラグメントプレースホルダー

私がいくつか持っているとしましょうフラグメント

public class FirstFragment extends Fragment { ... }

public class SecondFragment extends Fragment { ... }

public class ThirdFragment extends Fragment { ... }

メインもありますアクティビティ、その内容は(main.xml):

<LinearLayout ...>

  <!-- How to have a fragment placehold without specify which fragment show here? -->
  <fragment>

</LinearLayout>

私の質問は、上記のレイアウトファイルで、ここに表示するフラグメントを指定せずにフラグメントプレースホルダーを定義し、次にMy Activity Java code、適切なフラグメントをプレースホルダーに膨らませますか?

それは可能ですか、そしてそれをどのように行うのですか?

20
Leem.fin

可能です。 main.xmlで、フラグメントのプレースホルダーを定義し、「fragment_placeholder」と呼びましょう。

<LinearLayout ...>
 <FrameLayout Android:id="@+id/fragment_placeholder" Android:layout_weight="1"
        Android:layout_width="0px"
        Android:layout_height="match_parent" />
</LinearLayout>

アクティビティでは、フラグメントをロードするときはいつでも:

YourFragment fragment = new YourFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_placeholder, fragment);
ft.commit();
33
Drimmka