回答:
android.support.v4.app.Fragment
AndroidサポートライブラリのFragmentクラスです。これは、古いバージョンのAndroidでAndroidの新しい機能の一部を使用できる互換性パッケージです。
android.app.Fragment
あるフラグメントのクラスは、Android SDKのネイティブバージョンで。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.app.Fragment
クラスが非推奨になったとき、そのAPIレベル28が代替の、おそらく根本的な置き換えアプローチを持つことを期待していました。前方アプローチはありandroid.support.v4.app.Fragment
ますか、またはこれは後方互換性のある適切なアプローチですか?
android.support.v4.app.Fragment
専ら使用しています。
私が作成するすべてのアプリは、Android 2.3に直接対応する必要があり、これが最も簡単な方法です。
11以上をサポートしている場合は、に固執してくださいandroid.app.Fragment
。
アプリケーションがAPI 11以上のレベルをターゲットにしている場合、android.app.Fragmentを使用すると、APKサイズが小さくなります。それ以外の場合は、android.support.v4.app.Fragmentを使用します