ホームページ >Java >&#&チュートリアル >Android アクティビティ グループ内でフラグメントが互いに置き換えられないのはなぜですか?

Android アクティビティ グループ内でフラグメントが互いに置き換えられないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 06:20:15591ブラウズ

Why Aren't My Fragments Replacing Each Other in My Android Activity Group?

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

Android フラグメンテーション フレームワークに慣れていない場合、アクティビティ グループ内のフラグメントの置換は複雑な作業になる可能性があります。 .

問題

アクティビティ グループ内のフラグメントを別のフラグメントに置き換えようとすると、コードは正常に実行されたように見えても、視覚的な変化が起こらないという状況が発生することがあります。例外メッセージが表示されないため、これは混乱する可能性があります。

解決策

この問題は、XML にハードコードされたフラグメントを置き換えることができないという事実から発生します。代わりに、置換を可能にするためにフラグメントを動的に追加する必要があります。

フラグメントを動的に追加および置換するには:

  1. 保持するアクティビティ内にレイアウトまたはコンテナ (例、fragment_container) を作成します。フラグメント。
  2. 新しいフラグメント インスタンスを作成します。
  3. getSupportFragmentManager() を使用した FragmentTransaction。
  4. transaction.replace() を使用して、fragment_container 内の現在のフラグメントを新しいフラグメントに置き換えます。
  5. transaction.addToBackStack(null を使用してトランザクションをバックスタックに追加します) ) 必要に応じて。
  6. を使用してトランザクションをコミットします。 transaction.commit().

コード例

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();

注:

  • フラグメントXML レイアウト経由で追加されたものは置き換えることができません。
  • R.id.fragment_container は、アクティビティ内の任意の適切なレイアウトまたはコンテナーにすることができます。

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

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