私の質問は明らかな継承の違いとは別に、Fragment
とFragmentActivity
の主な違いは何ですか?各クラスはどのようなシナリオに最適ですか?私はこれらのクラスが両方とも存在する理由を理解しようとしています...フラグメントとフラグメントの違いアフィニティー
答えて
Fragment
を有し、Activity
の部分である:
- 独自のライフサイクル
- は
Activity
の実行中に、自身の入力イベント - を追加または削除することができる受信します。
Fragment
は、必ずActivity
に埋め込まなければなりません。
Fragments
は、HoneyComb(3.0)より前のAPIの一部ではありません。 HoneyCombより前のバージョンのプラットフォームをターゲットにしているアプリケーションでFragments
を使用する場合は、Support Packageをプロジェクトに追加し、Fragments
を保持するのにFragmentActivity
を使用する必要があります。 FragmentActivity
クラスはFragments
を扱うAPIを持っていますが、クラスはHoneyCombより前のクラスではありません。
あなたのプロジェクトがHoneyComb以上をターゲットにしている場合は、Fragments
を保持するのにではなくActivity
を使用する必要があります。
いくつかの詳細:
使用Activity
とandroid.app.Fragment
。 とFragmentActivity
を使用してください。サポートパッケージFragment
をActivity
に追加しないでください。例外がスローされます。
に注意すること:FragmentManager
とLoaderManager
がFragmentActivityに個別のサポートバージョンを持っている:
あなたは(アップハニカムと)Activity
でFragment
を使用している場合は、
getFragmentManager()
を取得するために呼び出しますandroid.app.LoaderManager
android.app.FragmentManager
あなたがFragmentActivity
(前ハニカム)でFragment
を使用している場合は、呼び出し:
getSupportFragmentManager()
がandroid.support.v4.app.FragmentManager
を取得します。 がはまた、知っておくと便利//don't do this myFragmentActivity.getLoaderManager(); //instead do this: myFragmentActivity.getSupportLoaderManager();
または
//don't do this: android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager(); //instead do this: android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
をしないので、
android.support.v4.app.LoaderManager
を取得する
getSupportLoaderManager()
は、フラグメントが中に埋め込まれなければならながらということですActivity
は、Activity
レイアウトの一部である必要はありません。これは、独自のUIを持たずに、アクティビティの不可視の作業者として使用できます。フラグメントアシスタントは、フラグメントサポートを備えた私たちの古典的なアクティビティです。したがって、FragmentActivityは、フラグメントがアクティビティーにアタッチされるときに必要です。
Well Fragmentは、Activityの基本的な動作をコピーする優れたコンポーネントですが、Activityのようなスタンドアロンのアプリケーションコンポーネントではなく、動作させるためにActivityにアタッチする必要があります。詳細
BTW、API 11より古いデバイスで作業したいアプリにのみ適用される最新の回答です。 – ToolmakerSteve
@ToolmakerSteveで詳細を教えてください。可能であれば、最新のバージョンで回答を編集できますか? –
FragmentActivityため
ルックhereは、フラグメントを含むアドホックな活動です。 ここでは、アンドロイド3.0(HoneyComb)、アンドロイドチームがアンドロイドSDKに挿入した主な重要な変更の1つについて説明します。
これらの新しい種類のコンセプトを使用すると、コードとレイアウトの断片がより柔軟でメンテナンス可能になります。 Googleで検索する場合は、多くの例があります。
FragmentActivityを、フラグメントをサポートできる通常のActivityクラスと考えてください。ハニカムの前に、アクティビティクラスはFragmentsを直接スーパープロテクションすることができなかったので、これはFragmentsを使用するアクティビティに必要です。
対象となるディストリビューションがHoneycomb以上の場合は、代わりにアクティビティを拡張することができます。
また、フラグメントは「サブアクティビティ」とみなされます。活動なしでは存在できません。常にフラグメントをサブアクティビティと考えると、あなたは良いものになるはずです。したがって、活動は親であり、断片的なものは子供の象徴的な関係です。
- 1. フラグメント内のcommit()とcommitAllowingStateLoss()の違い
- 2. フラグメントとフラグメントの通信
- 3. フラグメント内のフラグメント
- 4. フラグメント1、フラグメント1〜フラグメント2フラグメント2への活性
- 5. フラグメント内のフラグメントが機能しない
- 6. フラグメント内のフラグメントのタブ
- 7. フラグメント内のフラグメント内のgetSupportFragmentManager()
- 8. 新しいフラグメントをロードしようとしたときに、間違ったフラグメントがロードされています
- 9. フラグメントから別のフラグメント
- 10. フラグメント通信へのフラグメント
- 11. フラグメント要素のフラグメントonClickメソッド
- 12. フラグメントと基本クラスの拡張の違いは何ですか?
- 13. Android:古いフラグメントから見えるフラグメント
- 14. Android:AlertDialogのフラグメントが違って見える
- 15. フラグメント2番目のフラグメントから最初のフラグメントへのスタックバック
- 16. トランジションとフラグメント
- 17. フラグメントとローテーション
- 18. フラグメントと継承
- 19. Android:フラグメントとバックスタック
- 20. フラグメントとブロードキャストレシーバ
- 21. Androidリストビューとフラグメント
- 22. カメラインテントとアクティビティ/フラグメント
- 23. フラグメントとメニューディスプレイ
- 24. フラグメントとリスト
- 25. リストビューとフラグメント
- 26. タブとフラグメント
- 27. フラグメントからフラグメントへEditText
- 28. フラグメントからバックボタン付きフラグメント
- 29. Android:フラグメントと他のフラグメントとの直接の通信
- 30. アンドロイドスタジオのフラグメントとサポートライブラリ
ただし、フラグメントはアクティビティレイアウトの一部である必要はありません。あなたは、アクティビティの目に見えない作業者として独自のUIを持たないフラグメントを使用することもできます。 – uzay95
@ uzay95これを指摘してくれてありがとう。私はそれに言及する最後にセクションを追加しました。 –
@ GunnarKarlsson fragmentActivityにフラグメントを追加しますか? – Dhasneem