Android-fragments
Android-フラグメント
'_*フラグメント*は、よりモジュール化されたアクティビティ設計を可能にするアクティビティの一部です。 フラグメントが*サブアクティビティ*の一種であると言っても間違いではありません。_
以下は、フラグメントに関する重要なポイントです-
フラグメントには、独自のレイアウトと、独自のライフサイクルコールバックを持つ独自の動作があります。
アクティビティの実行中に、アクティビティのフラグメントを追加または削除できます。
単一のアクティビティで複数のフラグメントを組み合わせて、マルチペインUIを構築できます。
フラグメントは複数のアクティビティで使用できます。
フラグメントのライフサイクルは、ホストアクティビティのライフサイクルと密接に関連しています。つまり、アクティビティが一時停止すると、アクティビティで使用可能なすべてのフラグメントも停止します。
フラグメントは、ユーザーインターフェイスコンポーネントを持たない動作を実装できます。
フラグメントは、AndroidバージョンのAPIバージョン11のAndroidバージョンのAndroid APIに追加されました。
*Fragment* クラスを拡張してフラグメントを作成し、アクティビティのレイアウトファイルでフラグメントを *<fragment>* 要素として宣言することで、アクティビティレイアウトにフラグメントを挿入できます。
フラグメントを導入する前は、特定の時点で画面に表示できるアクティビティは1つだけであったため、制限がありました。 そのため、デバイス画面を分割して、異なる部分を個別に制御することはできませんでした。 しかし、フラグメントの導入により、柔軟性が向上し、一度に1つのアクティビティを画面に表示するという制限がなくなりました。 これで、単一のアクティビティを持つことができますが、各アクティビティは、独自のレイアウト、イベント、および完全なライフサイクルを持つ複数のフラグメントで構成できます。
以下は、フラグメントで定義された2つのUIモジュールをタブレットデザインの1つのアクティビティに結合する方法の典型的な例ですが、ハンドセットデザインでは分離しています。
アプリケーションは、タブレットサイズのデバイスで実行する場合、アクティビティAに2つのフラグメントを埋め込むことができます。 ただし、携帯電話サイズの画面では、両方のフラグメントに十分なスペースがないため、アクティビティAには記事のリストのフラグメントのみが含まれ、ユーザーが記事を選択すると、アクティビティBが開始されます。記事。
フラグメントのライフサイクル
Androidフラグメントには、Androidアクティビティに非常によく似た独自のライフサイクルがあります。 このセクションでは、ライフサイクルのさまざまな段階について説明します。
フラグメントのライフサイクル
これは、フラグメントクラスでオーバーライドできるメソッドのリストです-
- onAttach()フラグメントインスタンスはアクティビティインスタンスに関連付けられています。フラグメントとアクティビティは完全には初期化されていません。 通常、このメソッドでは、初期化作業をさらに進めるためにフラグメントを使用するアクティビティへの参照を取得します。
- * onCreate()*フラグメントの作成時に、システムはこのメソッドを呼び出します。 フラグメントを一時停止または停止してから再開するときに保持するフラグメントの重要なコンポーネントを初期化する必要があります。
- * onCreateView()フラグメントが初めてユーザーインターフェイスを描画するとき、システムはこのコールバックを呼び出します。 フラグメントのUIを描画するには、フラグメントのレイアウトのルートであるこのメソッドから *View コンポーネントを返す必要があります。 フラグメントがUIを提供しない場合、nullを返すことができます。
- onActivityCreated() onActivityCreated()は、ホストアクティビティの作成時にonCreateView()メソッドの後に呼び出されます。 アクティビティとフラグメントインスタンス、およびアクティビティのビュー階層が作成されました。 この時点で、findViewById()メソッドを使用してビューにアクセスできます。 例です。 このメソッドでは、Contextオブジェクトを必要とするオブジェクトをインスタンス化できます
- onStart() onStart()メソッドは、フラグメントが表示されると呼び出されます。
- onResume()フラグメントがアクティブになります。
- * onPause()*システムは、ユーザーがフラグメントを離れる最初の指示としてこのメソッドを呼び出します。 これは通常、現在のユーザーセッションを超えて保持する必要がある変更をコミットする場所です。
- onStop() onStop()を呼び出すことでフラグメントが停止します
- onDestroyView()このメソッドを呼び出した後、フラグメントビューは破棄されます
- onDestroy() onDestroy()は、フラグメントの状態を最終的にクリーンアップするために呼び出されますが、Androidプラットフォームによって呼び出されることは保証されていません。
フラグメントの使用方法は?
これには、フラグメントを作成するためのいくつかの簡単な手順が含まれます。
- まず、アクティビティで使用するフラグメントの数を決定します。 たとえば、2つのフラグメントを使用して、デバイスの横モードと縦モードを処理したいとします。
- 次に、フラグメントの数に基づいて、_Fragment_クラスを拡張するクラスを作成します。 Fragmentクラスには、上記のコールバック関数があります。 要件に基づいて、任意の関数をオーバーライドできます。
- 各フラグメントに対応して、XMLファイルでレイアウトファイルを作成する必要があります。 これらのファイルには、定義されたフラグメントのレイアウトが含まれます。
- 最後に、アクティビティファイルを変更して、要件に基づいてフラグメントを置き換える実際のロジックを定義します。
フラグメントの種類
基本的に、フラグメントは以下に示すように3つの段階に分割されます。
- link:/android/android_single_fragments [シングルフレームフラグメント]-シングルフレームフラグメントは、モバイルなどのハンドホールドデバイスに使用されています。ここでは、ビューとして1つのフラグメントのみを表示できます。
- link:/android/android_list_fragment [フラグメントのリスト]-特別なリストビューを持つフラグメントはリストフラグメントと呼ばれます
- link:/android/android_fragment_transitions [フラグメントトランザクション]-フラグメントトランザクションで使用します。 あるフラグメントを別のフラグメントに移動できます。