Fragment クラス

定義

このクラスは、API レベル 28 では非推奨になりました。

[Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)]
public class Fragment : Java.Lang.Object, Android.Content.IComponentCallbacks2, Android.Views.View.IOnCreateContextMenuListener, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/app/Fragment", DoNotGenerateAcw=true)>]
type Fragment = class
    inherit Object
    interface IComponentCallbacks2
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface View.IOnCreateContextMenuListener
継承
Fragment
派生
属性
実装

注釈

このクラスは、API レベル 28 では非推奨になりました。 Jetpack Fragment Library Fragment を使用して、すべてのデバイスで一貫した動作を行い、ライフサイクルにアクセスします。

フラグメントは、アクティビティに配置できるアプリケーションのユーザー インターフェイスまたは動作の一部です。 フラグメントとの相互作用は FragmentManager を介して行われます。これは Activity.getFragmentManager() と Fragment.getFragmentManager() を介して取得できます。 Fragment クラスは、さまざまな方法でさまざまな結果を得ることができます。 コアでは、より大きなアクティビティ内で実行されている特定の操作またはインターフェイスを表します。 フラグメントは、フラグメントが存在するアクティビティに密接に関連付けられており、1 つのアクティビティとは別に使用することはできません。 Fragment は独自のライフサイクルを定義しますが、そのライフサイクルはそのアクティビティに依存します。アクティビティが停止した場合、その中のフラグメントを開始することはできません。アクティビティが破棄されると、すべてのフラグメントが破棄されます。 Fragment のすべてのサブクラスには、引数なしのパブリック コンストラクターを含める必要があります。 フレームワークは、多くの場合、必要に応じて、特に状態の復元中にフラグメント クラスを再インスタンス化し、インスタンス化するためにこのコンストラクターを見つけることができる必要があります。 引数なしのコンストラクターを使用できない場合、状態の復元中にランタイム例外が発生することがあります。 ここで説明するトピック: 以前のプラットフォーム ライフサイクル レイアウト バック スタック開発者ガイド フラグメントの使用の詳細については、Fragments 開発者ガイドを参照してください。

フラグメントのライフサイクルは自身のアクティビティに関連付けられていますが、標準アクティビティのライフサイクルには独自のしわがあります。 onResume() などの基本的なアクティビティ ライフサイクル メソッドが含まれていますが、アクティビティと UI の生成との対話に関連するメソッドも重要です。 フラグメントを再開された状態に (ユーザーと対話する) ために呼び出されるライフサイクル メソッドのコア シリーズは、フラグメントがアクティビティに関連付けられた後に呼び出される onAttach(Activity) です。 フラグメントの初期作成を行うために onCreate(Bundle) が呼び出されました。 onCreateView(LayoutInflater、ViewGroup、Bundle) は、フラグメントに関連付けられているビュー階層を作成して返します。 onActivityCreated(Bundle) は、そのアクティビティが独自の Activity.onCreate() を完了したことをフラグメントに通知します。 onViewStateRestored(Bundle) は、そのビュー階層の保存された状態がすべて復元されたことをフラグメントに通知します。 onStart() は、(開始中のアクティビティを含む) に基づいて、フラグメントをユーザーに表示します。 onResume() は、フラグメントが (再開されるアクティビティを含む) ユーザーとの対話を開始します。 フラグメントが使用されなくなったため、逆の一連のコールバックが行われます。onPause() フラグメントは、アクティビティが一時停止しているか、フラグメント操作によってアクティビティ内でそのフラグメントが変更されているため、ユーザーと対話しなくなります。 onStop() フラグメントは、アクティビティが停止しているか、フラグメント操作によってアクティビティ内でそのフラグメントが変更されているため、ユーザーに表示されなくなりました。 onDestroyView() を使用すると、フラグメントは、そのビューに関連付けられているリソースをクリーンアップできます。 フラグメントの状態の最終クリーンアップを行うために onDestroy() が呼び出されました。 フラグメントがアクティビティに関連付けられていない直前に呼び出された onDetach() 。 レイアウト フラグメントは、アプリケーションのレイアウトの一部として使用できるため、コードをより適切にモジュール化し、実行されている画面に合わせてユーザー インターフェイスをより簡単に調整できます。 たとえば、項目の一覧で構成される単純なプログラムを見て、各項目の詳細を表示できます。

アクティビティのレイアウト XML には、 <fragment> タグを含め、レイアウト内にフラグメント インスタンスを埋め込むことができます。 たとえば、1 つのフラグメントを埋め込む単純なレイアウトを次に示します。

レイアウトは、通常の方法でアクティビティにインストールされます。

タイトルの一覧を示すタイトルフラグメントは非常に単純であり、ほとんどの作業で ListFragment に依存しています。 項目のクリックの実装に注意してください。現在のアクティビティのレイアウトによっては、新しいフラグメントを作成して表示して詳細をインプレースで表示するか (後で詳しく説明します)、新しいアクティビティを開始して詳細を表示できます。

選択した項目の内容を示す詳細フラグメントには、アプリに組み込まれている文字列配列のインデックスに基づいてテキストの文字列が表示されます。

この場合、ユーザーがタイトルをクリックすると、現在のアクティビティに詳細コンテナーがないため、タイトル フラグメントのクリック コードによって新しいアクティビティが起動され、詳細フラグメントが表示されます。

ただし、画面は、タイトルの一覧と現在選択されているタイトルに関する詳細の両方を表示するのに十分な大きさになる場合があります。 このようなレイアウトを横画面で使用するには、この代替レイアウトをレイアウトランドの下に配置できます。

前のコードがこの代替 UI フローにどのように調整されるかに注意してください。タイトル フラグメントはこのアクティビティの内部に詳細フラグメントを埋め込むようになり、詳細アクティビティは、詳細をインプレースで表示できる構成で実行されている場合は終了します。 構成の変更によって、これらのフラグメントをホストしているアクティビティが再開されると、その新しいインスタンスで、前のレイアウトと同じフラグメントが含まれていない別のレイアウトが使用される場合があります。 この場合、前のフラグメントはすべてインスタンス化され、新しいインスタンスで実行されます。 ただし、ビュー階層内の <fragment> タグに関連付けられていないものはすべて、コンテンツ ビューが作成されず、isInLayout() から false が返されます。 (このコードでは、コンテナーに配置されたフラグメントがそのコンテナーのレイアウトで実行されなくなったかどうかを判断し、その場合にビュー階層を作成しないようにする方法も示しています)。 <fragment> タグの属性は、フラグメントのビューを親コンテナーにアタッチするときに提供される LayoutParams を制御するために使用されます。 また、onInflate(Activity, AttributeSet, Bundle) のフラグメントによってパラメーターとして解析することもできます。 親アクティビティを破棄して再作成する必要がある場合に前のインスタンスに再関連付けできるように、インスタンス化されるフラグメントには何らかの一意識別子が必要です。 これは次の方法で提供できます。何も明示的に指定されていない場合は、コンテナーのビュー ID が使用されます。 android:tag を <fragment> で使用して、フラグメントの特定のタグ名を指定できます。 <fragment> で android:id を使用して、フラグメントの特定の識別子を指定できます。 バック スタック フラグメントが変更されたトランザクションは、所有アクティビティの内部バックスタックに配置できます。 ユーザーがアクティビティを押し戻すと、アクティビティ自体が完了する前に、バック スタック上のすべてのトランザクションがポップオフされます。 たとえば、整数引数を使用してインスタンス化され、UI の TextView に表示される、この単純なフラグメントを考えてみましょう。

フラグメントの新しいインスタンスを作成し、現在表示されているフラグメント インスタンスを置き換え、その変更をバック スタックにプッシュする関数は、次のように書き込まれます。この関数を呼び出すたびに、新しいエントリがスタック上にあり、戻って押すと、アクティビティ UI の以前の状態にユーザーが戻ります。 フラグメントが表示されたり消えたりすると、アクセシビリティのためにシステム イベントが生成されないため、View.setAccessibilityPaneTitle(CharSequence) を使用してフラグメントにタイトルを設定して、アクセシビリティ ユーザーにこれらの UI 遷移を通知します。

android.app.Fragmentの Android リファレンス。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
Fragment()

既定のコンストラクター

Fragment(IntPtr, JniHandleOwnership)

既存の Java Native Interface オブジェクトのマネージド表現を初期化します。

プロパティ

名前 説明
Activity

このフラグメントが現在関連付けられているアクティビティを返します。

AllowEnterTransitionOverlap

終了遷移と入力遷移が重なるかどうかを返します。

AllowReturnTransitionOverlap

戻り遷移と再入力遷移が重なるかどうかを返します。

Arguments

setArguments(Bundle) に指定された引数 (存在する場合) を返します。

ChildFragmentManager

このフラグメント内にフラグメントを配置および管理するためのプライベート FragmentManager を返します。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Context

このフラグメントが現在関連付けられているコンテキストを返します。

EnterTransition

ビューを初期シーンに移動するために使用する遷移を返します。

ExitTransition

バック スタックをポップしないときにフラグメントが削除、非表示、またはデタッチされたときに、ビューをシーン外に移動するために使用される遷移を返します。

FragmentManager

このフラグメントのアクティビティに関連付けられているフラグメントと対話するための FragmentManager を返します。

Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
Host

このフラグメントのホスト オブジェクトを返します。

Id

このフラグメントが認識されている識別子を返します。

IsAdded

フラグメントが現在アクティビティに追加されている場合は true を返します。

IsDetached

フラグメントが UI から明示的にデタッチされている場合は true を返します。

IsHidden

フラグメントが非表示になっている場合は true を返します。

IsInLayout

レイアウトが <fragment> タグを介してアクティビティ ビュー階層の一部として含まれている場合は true を返します。

IsRemoving

このフラグメントが現在アクティビティから削除されている場合は true を返します。

IsResumed

フラグメントが再開状態の場合は true を返します。

IsStateSaved

このフラグメントが追加され、その状態がホストによって既に保存されている場合は true を返します。

IsVisible

フラグメントが現在ユーザーに表示されている場合は true を返します。

JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniPeerMembers

Android.App.Fragment 用の JNI バインド インフラストラクチャを提供します。

LayoutInflater

このフラグメントのビューを拡張するために使用されるキャッシュされた LayoutInflater を返します。

LoaderManager

このメソッドは非推奨とされます。

ParentFragment

このフラグメントを含む親フラグメントを返します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ReenterTransition

バック スタックをポップして戻るときにビューをシーンに移動するために使用される遷移を返します。

Resources

getActivity().getResources() を返します。

RetainInstance

アクティビティの再作成 (構成変更など) でフラグメント インスタンスを保持するかどうかを制御します。

ReturnTransition

フラグメントがバック スタックをポップしたために削除、非表示、またはデタッチの準備をしているときに、ビューをシーン外に移動するために使用される遷移を返します。

SharedElementEnterTransition

コンテンツ シーンに転送される共有要素に使用される遷移を返します。

SharedElementReturnTransition

バック スタックのポップ中に戻される共有要素に使用される遷移を返します。

Tag

指定されている場合は、フラグメントのタグ名を取得します。

TargetFragment

setTargetFragment(Fragment, int) によって設定されたターゲット フラグメントを返します。

TargetRequestCode

setTargetFragment(Fragment, int) によって設定されたターゲット要求コードを返します。

ThresholdClass

Android.App.Fragment 用の JNI バインド インフラストラクチャを提供します。

ThresholdType

Android.App.Fragment 用の JNI バインド インフラストラクチャを提供します。

UserVisibleHint

関連項目も参照:

View

フラグメントのレイアウトのルート ビュー (onCreateView(LayoutInflater、ViewGroup、Bundle) によって返されるビュー) を取得します (指定されている場合)。

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dump(String, FileDescriptor, PrintWriter, String[])

フラグメントの状態を特定のストリームに出力します。

Equals(Object)
古い.

サブクラスは equals() をオーバーライドできません。

GetHashCode()
古い.

サブクラスは hashCode() をオーバーライドできません。

GetString(Int32, Object[])

アプリケーションのパッケージの既定の文字列テーブルからローカライズされた書式設定された文字列を返し、Formatter と String.format(String, Object) で定義されている書式引数を置き換えます。

GetString(Int32)

アプリケーションのパッケージの既定の文字列テーブルからローカライズされた文字列を返します。

GetText(Int32)

アプリケーションのパッケージの既定の文字列テーブルから、ローカライズされたスタイルの CharSequence を返します。

GetTextFormatted(Int32)

アプリケーションのパッケージの既定の文字列テーブルから、ローカライズされたスタイルの CharSequence を返します。

Instantiate(Context, String, Bundle)

指定されたクラス名を持つ Fragment の新しいインスタンスを作成します。

Instantiate(Context, String)

instantiate(Context,String,Bundle) と同様ですが、引数 Bundle は null です。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
OnActivityCreated(Bundle)

フラグメントのアクティビティが作成され、このフラグメントのビュー階層がインスタンス化されたときに呼び出されます。

OnActivityResult(Int32, Result, Intent)

startActivityForResult(Intent,int) の前の呼び出しから結果を受け取ります。

OnAttach(Activity)

このメソッドは、API レベル 23 では非推奨になりました。

OnAttach(Context)

フラグメントがそのコンテキストに最初にアタッチされたときに呼び出されます。

OnAttachFragment(Fragment)

フラグメントがこのフラグメントの子としてアタッチされたときに呼び出されます。

OnConfigurationChanged(Configuration)

コンポーネントの実行中にデバイス構成が変更されたときにシステムによって呼び出されます。

OnContextItemSelected(IMenuItem)

このフックは、コンテキスト メニューの項目が選択されるたびに呼び出されます。

OnCreate(Bundle)

フラグメントの初期作成を行うために呼び出されます。

OnCreateAnimator(FragmentTransit, Boolean, Int32)

フラグメントがアニメーションを読み込むときに呼び出されます。

OnCreateContextMenu(IContextMenu, View, IContextMenuContextMenuInfo)

ビューのコンテキスト メニューが表示されようとしているときに呼び出されます。

OnCreateOptionsMenu(IMenu, MenuInflater)

アクティビティの標準オプション メニューの内容を初期化します。

OnCreateView(LayoutInflater, ViewGroup, Bundle)

フラグメントがユーザー インターフェイス ビューをインスタンス化するために呼び出されます。

OnDestroy()

フラグメントが使用されなくなったときに呼び出されます。

OnDestroyOptionsMenu()

このフラグメントのオプション メニュー項目が全体的なオプション メニューに含まれていないときに呼び出されます。

OnDestroyView()

onCreateView(LayoutInflater、ViewGroup、Bundle) によって以前に作成されたビューがフラグメントからデタッチされたときに呼び出されます。

OnDetach()

フラグメントがアクティビティにアタッチされなくなったときに呼び出されます。

OnGetLayoutInflater(Bundle)

このフラグメントのビューを拡張するために使用される LayoutInflater を返します。

OnHiddenChanged(Boolean)

フラグメントの isHidden() によって返される非表示状態が変更されたときに呼び出されます。

OnInflate(Activity, IAttributeSet, Bundle)

このメソッドは、API レベル 23 では非推奨になりました。

OnInflate(Context, IAttributeSet, Bundle)

フラグメントがビュー レイアウトのインフレーションの一部として作成されるときに呼び出されます。通常は、アクティビティのコンテンツ ビューの設定から呼び出されます。

OnInflate(IAttributeSet, Bundle)
古い.

このメソッドは、API レベル 15 では非推奨になりました。

OnLowMemory()

これは、システム全体がメモリ不足で実行されており、アクティブに実行されているプロセスがメモリ使用量を削減する必要がある場合に呼び出されます。

OnMultiWindowModeChanged(Boolean, Configuration)

Fragment のアクティビティが全画面表示モードからマルチウィンドウ モードに変更され、その逆が visa に変わるときに呼び出されます。

OnMultiWindowModeChanged(Boolean)

このメソッドは、API レベル 26 では非推奨になりました。

OnOptionsItemSelected(IMenuItem)

このフックは、オプション メニューの項目が選択されるたびに呼び出されます。

OnOptionsMenuClosed(IMenu)

このフックは、オプション メニューが閉じられるたびに呼び出されます (ユーザーが [戻る] または [メニュー] ボタンを使用してメニューをキャンセルするか、項目が選択されている場合)。

OnPause()

フラグメントが再開されなくなったときに呼び出されます。

OnPictureInPictureModeChanged(Boolean, Configuration)

ピクチャインピクチャモードとの間でアクティビティが切り替わると、システムによって呼び出されます。

OnPictureInPictureModeChanged(Boolean)

このメソッドは、API レベル 26 では非推奨になりました。

OnPrepareOptionsMenu(IMenu)

画面の標準オプション メニューを表示する準備をします。

OnRequestPermissionsResult(Int32, String[], Permission[])

アクセス許可を要求した結果のコールバック。

OnResume()

フラグメントがユーザーに表示され、アクティブに実行されているときに呼び出されます。

OnSaveInstanceState(Bundle)

フラグメントが現在の動的状態を保存するように要求するために呼び出され、プロセスの新しいインスタンスで後で再構築できるようになります。

OnStart()

フラグメントがユーザーに表示されるときに呼び出されます。

OnStop()

フラグメントが開始されなくなったときに呼び出されます。

OnTrimMemory(TrimMemory)

不要なメモリをプロセスからトリミングするプロセスに適したタイミングであるとオペレーティング システムが判断したときに呼び出されます。

OnViewCreated(View, Bundle)

onCreateView(LayoutInflater,ViewGroup,Bundle) が返された直後に、保存された状態がビューに復元される直前に呼び出されます。

OnViewStateRestored(Bundle)

保存されたすべての状態がフラグメントのビュー階層に復元されたときに呼び出されます。

PostponeEnterTransition()

startPostponedEnterTransition() または FragmentManager.executePendingTransactions() が呼び出されるまで、入るフラグメント遷移を延期します。

RegisterForContextMenu(View)

特定のビューに対して表示するコンテキスト メニューを登録します (複数のビューでコンテキスト メニューを表示できます)。

RequestPermissions(String[], Int32)

このアプリケーションに付与するアクセス許可を要求します。

SetEnterSharedElementCallback(SharedElementCallback)

フラグメントと共にカスタム遷移を使用する場合、戻るスタックをポップしないときにこのフラグメントがアタッチまたはデタッチされると、enter 遷移コールバックが呼び出されます。

SetExitSharedElementCallback(SharedElementCallback)

フラグメントと共にカスタム遷移を使用する場合は、バック スタックをポップするときに、このフラグメントがアタッチまたはデタッチされたときに終了遷移コールバックが呼び出されます。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetHasOptionsMenu(Boolean)

このフラグメントが onCreateOptionsMenu(Menu, MenuInflater) および関連メソッドの呼び出しを受け取って、オプション メニューの設定に参加したいと報告します。

SetInitialSavedState(Fragment+SavedState)

FragmentManager.saveFragmentInstanceState によって返されるように、このフラグメントが最初に構築されたときにそれ自体を復元する必要がある初期保存状態を設定します。

SetMenuVisibility(Boolean)

このフラグメントのメニューを表示するかどうかを示すヒントを設定します。

SetTargetFragment(Fragment, Int32)

このフラグメントの省略可能なターゲット。

ShouldShowRequestPermissionRationale(String)

アクセス許可を要求する前に、根拠のある UI を表示する必要があるかどうかを取得します。

StartActivity(Intent, Bundle)

フラグメントの包含アクティビティから Activity.startActivity(Intent,Bundle) を呼び出します。

StartActivity(Intent)

フラグメントに含まれる Activity から Activity.startActivity(Intent) を呼び出します。

StartActivityForResult(Intent, Int32, Bundle)

フラグメントの包含アクティビティから Activity.startActivityForResult(Intent,int,Bundle) を呼び出します。

StartActivityForResult(Intent, Int32)

フラグメントの包含アクティビティから Activity.startActivityForResult(Intent,int) を呼び出します。

StartIntentSenderForResult(IntentSender, Int32, Intent, ActivityFlags, ActivityFlags, Int32, Bundle)

フラグメントの包含アクティビティから Activity.startIntentSenderForResult(IntentSender,int,Intent,int,int,int,Bundle) を呼び出します。

StartPostponedEnterTransition()

postponeEnterTransition() が呼び出された後、延期された遷移を開始します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterForContextMenu(View)

特定のビューに対してコンテキスト メニューが表示されないようにします。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

このマネージド ピアが破棄されたことを相互運用ランタイムに通知します。

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

別のマネージド参照によって保持されない限り、このJavaピアを解放します。

(継承元 Object)
IJavaPeerable.Finalized()

このマネージド ピアが終了したことを相互運用ランタイムに通知します。

(継承元 Object)
IJavaPeerable.JniManagedPeerState

このマネージド ピアとその JNI 参照の間の関係を記述する状態を取得します。

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

このJava ピアの相互運用 ID ハッシュ コードを設定します。

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

このJava ピアのマネージド ピアと JNI ピアの状態を設定します。

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

このマネージド ピアで使用される JNI オブジェクト参照を設定します。

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

このクラスは、API レベル 28 では非推奨になりました。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象