177

我有一个关于Android支持库,片段的问题,作为一个具体的例子,ViewPager类。我的意图是创建一个与Android开发人员网站上提供的示例类似功能的应用程序(http://developer.android.com/training/animation/screen-slide.htmlhttp://developer.android.com/training/implementing-navigation/lateral.html)。纵观他们的代码,我注意到他们利用了我的研究中的android.support.v4.app库,这是访问ViewPager类的唯一途径。使用ViewPager Android.app碎片与android.support.v4.app?

在我的情况下,我没有兴趣向后兼容。最低的API等级是14(冰淇淋三明治),建立目标是4.2果冻豆。这是最简单的形式,我的应用程序的执行效果与我在Android开发网站上链接的第二个演示程序完全相同 - 只需在三个标签之间滑动即可。

我读过的所有文章/帖子/答案似乎都非常青睐v4支持库。现在对于我,虽然长篇大论,问题(S):

  1. 什么是构建我的应用程序的最佳方式 - 为什么和 - 使用android.support.v4.app,从而使用SupportFragments,或者使用在android.app提供的片段?

  2. 如果来自android.app的碎片是要走的路,那么接近ViewPagers的最佳方法是什么?

  3. 如果SupportFragments最适合该任务,我估计它们具有与另一个相同的功能 - 那么在android.app之内的目的是什么?

希望有人提供了更清晰的认识能不能给我一点澄清,因为我猛然一惊......

+1

如果您使用'ViewPager',则无法使用'Fragments'您需要使用支持库'SupportFragment' – tyczj

+1

'SupportFragment'不是Android SDK中的类... – Karakuri

+2

@ Karakuri对不起,我不是指一个字面类'SupportFragment',我只是指'android.support.v4.app'中提供的'Fragment'类。 – jonstaff

回答

183

您可以使用ViewPagerandroid.app程序包的原始片段与android.support.v13.app程序包中的适配器一起使用。你必须为此使用v13支持jar。

有与ViewPager工作适配器的两个版本,在v4包的人是为了与支持片段中使用时,那些在v13与本地片段。

现在有两个片段实现的原因是历史的:android.app包中的片段与Android 3一起仅针对平板电脑引入,创建支持库是为了将碎片带入运行旧版本的电话。在Android 4上你有两个。

从我自己的经验,我会建议使用支持片段,即使在Android 4开发。以下是一些原因:Fragment or Support Fragment?

+3

谢谢!我知道我迟到了,但这个答案对我很有帮助。 – Kyle

+0

support.v13适用于ViewPager ...直到您尝试在DialogFragment中使用ViewPager :-( – SteelBytes

+0

'android.app'没有'FragmentPagerAdapter',那么就不可能使用viewpager和android.app.Fragment?any这里的想法是否有任何选择旧视图寻呼机?因此,以动态挂钩片段给定的标签 – Nikhil

1

如果你要瞄准API 11+,你不会需要的支持库[和你的实际apk会更小,至少)。

如果你想在Android 3.x之前支持任何东西,你需要支持库。

这是你在问什么?

+9

您需要使用支持库来使用ViewPager,这是他询问的关于 – tyczj

+0

@Matt感谢您的回答,但我正在寻找包含'ViewPager'功能的最佳解决方案,并解释了为什么该解决方案是最好的。 – jonstaff