web-dev-qa-db-ja.com

ViewPagerを使用したAndroid.appフラグメントとAndroid.support.v4.appの比較

Androidサポートライブラリ、フラグメント、および特定の例としてViewPagerクラスに関して質問があります。私の意図は、Android Developer Webサイトで提供されているサンプルと同様の機能を持つアプリを作成することです( http://developer.Android.com/training/animation/screen-slide.html または http://developer.Android.com/training/implementing-navigation/lateral.html )。彼らのコードを見ると、彼らはAndroid.support.v4.appライブラリを利用していることに気づきました。これは私の研究からViewPagerクラスにアクセスする唯一の方法です。

私の状況では、後方互換性には興味がありません。最小APIレベルは14(アイスクリームサンドイッチ)で、ビルドターゲットは4.2 Jelly Beanです。最も単純な形式では、アプリはAndroid devウェブサイトでリンクした2番目のデモとまったく同じように動作します-それぞれにコンテンツがある3つのタブ間をスワイプするだけです。

私が読んだすべての記事/投稿/回答は、v4サポートライブラリを非常に好んでいるようです。さて、私の長い質問ですが、次の質問について:

  1. Android.support.v4.appを使用してSupportFragmentsを使用する、またはAndroid.appで提供されるフラグメントを使用する-アプリケーションを構築する最良の方法は何ですか?

  2. Android.appのフラグメントが進むべき方法である場合、ViewPagersにアプローチする最適な方法は何ですか?

  3. SupportFragmentsがタスクに最も適している場合、それらは他と同じ機能を持っていると推定します。したがって、Android.app内にそれらを配置する目的は何ですか?

うまく理解できていれば、私は困惑しているので、少し説明してくれるといいのですが...

181
jonstaff

Android.support.v13.app パッケージのアダプターを使用して、Android.appパッケージのネイティブフラグメントでViewPagerを使用できます。そのためには、v13サポートjarを使用する必要があります。

ViewPagerで動作するアダプターには2つのバージョンがあります。v4パッケージ内のものはサポートフラグメントで使用するためのもので、v13内のものはネイティブフラグメントで使用するためのものです。

現在2つのフラグメント実装がある理由は歴史的です:Android.appパッケージのフラグメントは、タブレット専用のAndroid 3で導入され、古いバージョンを実行している電話機にフラグメントをもたらすためにサポートライブラリが作成されました。 Android 4には両方があります。

私自身の経験から、Android 4用に開発する場合でも、サポートフラグメントを使用することをお勧めします。いくつかの理由は次のとおりです。 フラグメントまたはサポートフラグメント?

183
brillenheini

Android.app.FragmentクラスはAndroid P( link )であるため非推奨です。したがって、Android.support.v4.app.Fragmentのみをすべての場所で使用する必要があります。

3
Artyom

API 11+をターゲットとする場合、サポートライブラリは必要ありません(少なくとも実際のapkは小さくなります)。

Android 3.xより前のバージョンをサポートする場合は、サポートライブラリが必要です。

これはあなたが求めていることですか?

1
Matt