android.app.Fragment
との違いは何ですか?またandroid.support.v4.app.Fragment
、それぞれを使用する必要がある状況は何ですか?
6 に答える
android.support.v4.app.Fragment
は、AndroidサポートライブラリのFragmentクラスです。これは、古いバージョンのAndroidでAndroidの新しい機能の一部を使用できるようにする互換性パッケージです。
android.app.Fragment
AndroidSDKのネイティブバージョンのFragmentクラスです。Android 3(API 11)で導入されました。
アプリでフラグメントを使用するようにし、API 11より前のデバイスをターゲットにする場合は、を使用する必要がありますandroid.support.v4.app.Fragment
。ただし、API 11以降を実行しているデバイスのみを対象としている場合は、を使用できますandroid.app.Fragment
。
編集:OSに含まれるandroid.app.Fragment
ものは非推奨になり(APIレベル28の時点で)、すべての人がサポートライブラリの実装の使用に移行する必要があります。
2018年現在:
android.app.Fragment
ドキュメントから:
このクラスはAPIレベル28で非推奨になりました。すべてのデバイスで一貫した動作を行い、ライフサイクルにアクセスするに
は、サポートライブラリを使用してください。Fragment
したがって、サポートフラグメント(android.support.v4.app.Fragment
)は、ネイティブフラグメント()の代わりにどこでも使用する必要がありますandroid.app.Fragment
。
私はandroid.support.v4.app.Fragment
独占的に使用します。
私が作成するすべてのアプリは、Android 2.3に戻ってサポートする必要があり、これが最も簡単な方法です。
11以降をサポートしている場合は、に固執してandroid.app.Fragment
ください。
アプリケーションがAPI11以降を対象としている場合はandroid.app.Fragment
、APKファイルを使用できます。
android.support.v4.app.Fragment
それ以外の場合は、古いAndroid APIバージョン(Android 3.x)をサポートするために、ライブラリをプロジェクトに追加します。
android.support.v4.app.Fragment
は、古いAPIバージョンの下位互換性を取得するために使用できるライブラリです。
フラグメントはAPIレベル11で(他の機能とともに)追加されました。これらの機能をAPI 11より前のデバイスに拡張するには、そのライブラリを含める必要があります。これは便利なライブラリであり、アクションバーをAPIv11より前のデバイスに拡張するActionBarSherlockを確認することをお勧めします。
アプリケーションがAPI11以上のレベルを対象としている場合は、android.app.Fragmentを使用すると、APKのサイズが小さくなります。それ以外の場合は、android.support.v4.app.Fragmentを使用してください