Fragments API はあなたの友達です。いいえ、本当に。
(インターウェブとGlenn BechのSOに関する回答から適応)
1.再利用可能
フラグメントは、再利用可能なユーザー インターフェースを作成するための Android のソリューションです。アクティビティとレイアウトを使用して (たとえば、インクルードを使用して) 同じことをいくつか実現できます。でも; フラグメントは、HoneyComb などから Android API に接続されます。
2.軽量
アクティビティは主要なコンポーネントであるため、多くの追加の責任があります。コンテキストの提供など。これらの追加の責任がなければ、フラグメントは軽量であり、多くのフラグメントがあるため特に有益です (アクティビティがフラグメントにリファクタリングされる場合)。軽量だと言いましたか?
3. API に反対するのではなく、API と連携する
アクションバー。タブでアプリをナビゲートしたい場合は、ActionBar.TabListener インターフェースが onTabSelected メソッドへの入力引数として FragmentTransaction を提供することがすぐにわかります。おそらくこれを無視して、別の巧妙なことを行うこともできますが、API ではなく、API に対して作業することになります。
4. 巧妙な BackStack とカスタマイズも可能
FragmentManager は非常に巧妙な方法で「戻る」を処理します。戻るとは、通常のアクティビティのように、最後のアクティビティに戻るという意味ではありません。前のフラグメント状態に戻ることを意味します。これは、いつ、どのようにバックスタックを使用するかを制御できるという事実によって、さらに驚くべきことです (はい、その言葉です)。
5.キラキラとグラマー
ハリウッドのすべての効果は一体どこから来ると思いますか? FragentPagerAdapter でクールな ViewPager を使用して、スワイプ インターフェイスを作成できます。FragmentPagerAdapter コードは、通常のアダプターよりもはるかに簡潔であり、個々のフラグメントのインスタンス化を制御します。フラグメントに適用できるトランジション アニメーションとスワイプ アニメーションは、Activity では実行できないいくつかのことです。
6. タブレットと電話
より大きな電話?いいえ、タブレットです。携帯電話とタブレットの両方のアプリケーションを作成しようとするときに Fragments を使用すると、生活がずっと楽になります。フラグメントは Honeycomb+ API と密接に結びついているため、コードを再利用するために電話でもフラグメントを使用する必要があります。そこで便利なのが互換性ライブラリです。
7. 電話だけの人でしょ?
電話専用のアプリにフラグメントを使用することもできますし、使用する必要があります。携帯性を重視するなら。私は ActionBarSherlock と互換性ライブラリを使用して、バージョン 1.6 までずっと同じように見える「ICS のような」アプリを作成しています。タブ付きのアクションバー、オーバーフロー、分割アクションバー、ビューページャーなどの最新機能を利用できます。
もう一つ
8. クロスコミュニケーション
フラグメント間で通信する最良の方法はインテントです。Fragemnt で何かを押すと、通常、データを含む StartActivity() を呼び出します。インテントは、起動したアクティビティのすべてのフラグメントに渡されます。それはただ簡単です。