19

複合コントロールの代わりに Android 3.0 フラグメントを使用する必要があるのはなぜですか? View 継承または複合コントロールを一度作成すれば、どこでも使用できます。

http://android-developers.blogspot.com/2011/02/android-30-fragments-api.htmlを読みましたが、答えが見つかりませんでした。

4

2 に答える 2

35

違いは、フラグメントには独自のライフサイクル (onPause、onCreate、onStart...) があることです。ライフサイクルを持つことにより、フラグメントはイベントに独立して応答し、onSaveInstanceState を介して状態を保存し、元に戻すことができます (つまり、着信後に再開するときや、ユーザーが [戻る] ボタンをクリックしたときなど)。ライフ サイクルは、フラグメントのドキュメントにまとめられています。

https://developer.android.com/guide/components/fragments.html#ライフサイクル

フラグメントまたはアクティビティを複合ビューにラップすることはいつでもできるため、フラグメントは、独立したライフサイクルを提供する複合ビューへのコンテナと考えてください。

于 2012-06-20T19:02:26.553 に答える
2

その理由は、タブレットと電話で同じコードを機能させるためです。これらのデバイスにはさまざまなレイアウトの考慮事項があり、フラグメントを使用すると、コードを書き直さなくても、それを考慮してアプリの動作を変えることができます。

于 2011-06-02T13:05:37.770 に答える