ViewPagerを使用したAndroid.app Fragments対android.support.v4.app?


182

Androidサポートライブラリ、フラグメント、具体的な例としてViewPagerクラスについて質問があります。私の意図は、Androidデベロッパーウェブサイト(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(Ice Cream Sandwich)で、ビルドターゲットは4.2 Jelly Beanです。最も単純な形式では、私のアプリは、Android開発Webサイトでリンクした2番目のデモとまったく同じように機能します。それぞれのコンテンツを含む3つのタブ間をスワイプするだけです。

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

  1. 私のアプリケーションを構造化するための最良の方法は何ですか-を使用しandroid.support.v4.app、それによってSupportFragmentsを使用するか、またはで提供されるFragmentsを使用しますandroid.app-その理由は?

  2. からの断片android.appが行く方法である場合、アプローチする最適な方法は何ViewPagersですか?

  3. SupportFragmentsがタスクに最適である場合、それらが他の機能と同じ機能を持っていると私は推定します-それで、それらをすべて内部に持つ目的は何android.appですか?

うまくいけば、より明確な理解を持った誰かが私を少し説明してくれます。


1
サポートライブラリを使用する必要Fragmentsがある場合は使用できませんViewPagerSupportFragment
tyczj

1
SupportFragmentはAndroid SDKのクラスではありません...
Karakuri

2
@からくり混乱してすみません。私はリテラルクラスを意味するのではなくSupportFragment、単にでFragment利用可能なクラスを参照していますandroid.support.v4.app
jonstaff 2013

@jonstaffどちらの方法でも、サポートライブラリでフラグメントクラスのみを使用できます
tyczj

@tyczjありがとう、しかしそれは本当に質問に答えるものではありません。私はより多くのを探していますなぜ私はすでに何もありません知っているので、ViewPager中にはandroid.app
jonstaff 2013

回答:


183

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

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

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

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


3
これありがとう!私はパーティーに遅れるのはわかっていますが、この答えはとても役に立ちました。
カイル

support.v13はViewPagerで機能します... DialogFragmentでViewPagerを使用するまで:-(
SteelBytes

android.appそうしないFragmentPagerAdapterと、android.app.Fragmentでviewpagerを使用できなくなりますか?ここで何かアイデアはありますか?古いページャにオプションはありますか?特定のタブのフラグメントを動的にフックするため
Nikhil

@Nikhil FragmentPagerAdapterには2つのバージョンがあります。android.support.v4.appパッケージ内の1つはサポートフラグメントで動作し、もう1つはandroid.support.v13.app「通常の」フラグメントで動作します
brillenheini

私はv4の使用を回避できるようにv13を使用することを望んでいました。v4はv13の依存関係であるため、サポートフラグメント/ビューページャーを使用することもできます。
Vas

3

android.app.FragmentクラスはAndroid P(link)から廃止されたので、android.support.v4.app.Fragmentどこでも使用する必要があります。


1

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

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

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


9
ViewPagerを使用するには、サポートライブラリを使用する必要があります。これは、彼が求めていることです
tyczj

@マットあなたの答えをありがとう、しかし私はViewPager機能性を組み込んだ最良の解決策と、その解決策が最善である理由の説明を探しています。
jonstaff 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.