[解決済み] FragmentとFragmentActivityの違いは何ですか?
質問
質問ですが、明らかな継承の違いは別として、主な違いは何でしょうか?
Fragment
と
FragmentActivity
? それぞれのクラスは、どのようなシナリオに最適なのでしょうか?なぜこの2つのクラスが存在するのかを理解したいのですが...。
どのように解決するのですか?
A
Fragment
のセクションです。
Activity
を、持っている。
- 独自のライフサイクル
- 独自の入力イベントを受信する
-
を追加または削除することができます。
Activity
が実行中であることを示します。
A
Fragment
は常に
Activity
.
Fragments
はHoneyComb(3.0)以前のAPIには含まれていません。もし
Fragments
を、HoneyComb よりも前のバージョンのプラットフォームをターゲットとするアプリに追加する必要があります。
サポートパッケージ
をプロジェクトに追加し
FragmentActivity
を保持するために
Fragments
. その
FragmentActivity
クラスは
Fragments
であるのに対し
Activity
クラスは、HoneyComb以前は、そうではありません。
HoneyComb以降のみを対象とするプロジェクトでは、以下のように
Activity
であり
FragmentActivity
を保持するために
Fragments
.
いくつかの詳細を説明します。
使用方法
android.app.Fragment
で
Activity
. 使用方法
android.support.v4.app.Fragment
とともに
FragmentActivity
. サポートパッケージは追加しないでください
Fragment
を
Activity
を投げるとExceptionが発生するため。
気をつけるべきこと
FragmentManager
と
LoaderManager
は、FragmentActivityのサポートバージョンが分かれています。
を使用している場合は
Fragment
の中に
Activity
(HoneyComb以上)を呼び出すと
-
getFragmentManager()
を取得します。android.app.FragmentManager
-
getLoaderManager()
を取得するandroid.app.LoaderManager
を使用している場合
Fragment
の中に
FragmentActivity
(HoneyComb以前)と呼びます。
-
getSupportFragmentManager()
を取得します。android.support.v4.app.FragmentManager
. -
getSupportLoaderManager()
を取得します。android.support.v4.app.LoaderManager
ということで ドンマイ する
//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()
また、知っておくと便利なのは、フラグメントは
Activity
の一部である必要はありません。
Activity
レイアウトになります。それ自身のUIを持たず、アクティビティの不可視のワーカーとして使用することができます。
関連
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] match_parentとfill_parentの違いは何ですか?
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] compileSdkVersionとtargetSdkVersionの違いは何ですか?
-
[解決済み] なぜフラグメントなのか、そしてアクティビティの代わりにフラグメントを使用するのはどんなときか?
-
[解決済み] フラグメントのインスタンス状態をバックスタックに正しく保存する方法は?
-
[解決済み] com.google.android.gms.maps.MapFragment の ID、タグ null、または親 ID が別のフラグメントと重複しています。
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
-
[解決済み】FragmentPagerAdapterとFragmentStatePagerAdapterの違いは何ですか?
-
[解決済み】ActivityとFragmentActivityの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android.mk:7: *** セパレータがありません。
-
gitlab 設定エラー。リモートリポジトリから読み込めなかったか、ホストキーの検証に失敗しました。
-
cygwinのダウンロード、インストールチュートリアル、およびCDTの「makeプログラムがパスに見つからない」バグの解消
-
android:EMSのプロパティ
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
問題 ---- Android ---- ActivityManager: Error: アクティビティクラス{xx/xx.MainActivity}が存在しない
-
Androidのカラーグラデーション実装のまとめ
-
Android.support.v7.widget.Toolbar が見つかりませんでした。