ホームページ  >  記事  >  Java  >  アクティビティグループ内のフラグメントを動的に置き換える方法は?

アクティビティグループ内のフラグメントを動的に置き換える方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-18 09:25:02907ブラウズ

How to Dynamically Replace Fragments within an Activity Group?

アクティビティ グループ内のフラグメントの置換

この質問は、アクティビティ グループ内のフラグメントを別のフラグメントに置き換えることに関するものです。提供されたコードは、エラーなしで実行中に意図したビューを表示できません。問題を詳しく調べて解決策を提供しましょう。

問題

最初のコードは、ID R.id.book_description_fragment を持つフラグメントを、セクション説明フラグメント。ただし、ビューは表示されません。

解決策

XML で静的に定義されたフラグメントを動的に置き換えることはできません。この制限に対処するには:

  1. フラグメントを動的に追加: 置換を容易にするために、実行時に必要なフラグメントをアクティビティ グループに動的に追加します。
  2. フラグメントを置換コード: フラグメントを動的に置き換えるコード スニペットの次の更新バージョンを使用します:
Fragment newFragment = new SectionDescriptionFragment();
FragmentTransaction transaction = getActivity().getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction.addToBackStack(null);
transaction.commit();
  1. フラグメント コンテナ ID: R.id. Fragment_container は、動的フラグメントをホストするアクティビティ グループ内のレイアウトまたはコンテナに対応します。

重要な注意事項:

  • 忘れずにフラグメントを定義してください。
  • フラグメントを置換すると、フラグメント コンテナ内のコンテンツが新しいフラグメントに置き換えられます。
  • addToBackStack メソッドを使用すると、ユーザーはアクティビティ グループの XML レイアウトに戻ることができます。前のフラグメント。

以上がアクティビティグループ内のフラグメントを動的に置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。