Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

フラグメント

Fragment は、アプリの UI の再利用可能な部分を表します。フラグメントはそれ自身のレイアウトを定義して管理します。また、それ自身のライフサイクルを持ち、入力イベントを処理できます。フラグメントは単独では機能せず、アクティビティまたは別のフラグメントによってホストされる必要があります。フラグメントのビュー階層は、ホストのビュー階層の一部を構成するか、またはホストのビュー階層に接続されます。

モジュール性

フラグメントを使用すると UI を独立したチャンクに分割できるため、アクティビティの UI にモジュール性と再利用可能性を導入できます。ナビゲーション ドロワーなど、アプリのユーザー インターフェース全体に関係するグローバル要素を配置する場所としては、アクティビティが最適です。一方、単一画面または画面の一部の UI を定義して管理するには、フラグメントが適しています。

さまざまな画面サイズに対応するアプリについて考えてみましょう。大きい画面では、アプリは静的ナビゲーション ドロワーとリストをグリッド レイアウトで表示する必要があります。小さい画面では、下部のナビゲーション バーとリストを線形レイアウトで表示する必要があります。こうしたすべてのバリエーションをアクティビティ内で管理するのは容易ではありません。コンテンツからナビゲーション要素を分離すると、こうしたバリエーションの管理が容易になります。その場合、アクティビティは適切なナビゲーション UI を表示する役割を担い、フラグメントは適切なレイアウトでリストを表示します。

画面サイズが異なる同じ画面の 2 つのバージョン
図 1. 画面サイズが異なる同じ画面の 2 つのバージョン左の大きい画面には、アクティビティが制御するナビゲーション ドロワーと、フラグメントが制御するグリッドリストがあります。右の小さい画面には、アクティビティが制御する下部のナビゲーション バーと、フラグメントが制御する線形リストがあります。

UI をフラグメントに分割すると、実行時にアクティビティの外観を簡単に変更できます。アクティビティのライフサイクル状態STARTED 以降のときは、フラグメントを追加、置換、削除できます。アクティビティが管理するバックスタックにこうした変更の記録を保持しておくと、変更を元に戻すことができます。

同じアクティビティ内または複数のアクティビティで、同じフラグメント クラスの複数のインスタンスを使用できます。別のフラグメントの子として使用することもできます。この点を考慮して、フラグメントでは、そのフラグメントの UI の管理に必要なロジックのみを提供する必要があります。フラグメント間の依存関係または相互作用を設定しないようにしてください。

次のステップ

フラグメントに関するドキュメントとリソースについては、以下を参照してください。

スタートガイド

詳細トピック

動画