使用ViewPager的Android.app片段与android.support.v4.app?


182

我对Android支持库,片段以及作为一个具体示例的ViewPager类有疑问。我的意图是创建一个功能与Android Developer网站(http://developer.android.com/training/animation/screen-slide.htmlhttp://developer.android.com/ training / implementing-navigation / lateral.html)。在研究他们的代码时,我注意到他们利用了该android.support.v4.app库,根据我的研究,该库是访问ViewPager该类的唯一方法。

在我的情况下,我对向后兼容性没有兴趣。最低API级别是14(冰淇淋三明治),构建目标是4.2软糖。以最简单的形式,我的应用程序执行的功能与我在Android开发人员网站上链接的第二个演示程序完全相同-只需在三个包含内容的选项卡之间滑动即可。

我读过的所有文章/帖子/答案似乎都非常支持v4支持库。现在是我的问题,尽管问题long之以鼻:

  1. 构造应用程序的最佳方法是什么-使用android.support.v4.app,从而使用SupportFragments,或使用其中提供的Fragments- android.app为什么?

  2. 如果“碎片来源” android.app是解决之道,那么最佳的解决方法是ViewPagers什么?

  3. 如果SupportFragments最适合该任务,我估计它们具有与其他功能相同的功能-那么将它们完全包含在内部的目的是什么android.app

希望有一个更清晰的了解的人可以给我一些澄清,因为我感到困惑。


1
Fragments如果您正在使用,则无法使用,则ViewPager需要使用支持库SupportFragment
tyczj 2013年

1
SupportFragment不是Android SDK中的类...
Karakuri

2
@Karakuri抱歉让您感到困惑;我并不是说文字类SupportFragment,我只是指的Fragmentandroid.support.v4.app
jonstaff

无论哪种方式,@jonstaff都只能使用支持库中的片段类
tyczj 2013年

@tyczj谢谢,但这并不能真正回答问题。我在寻找更多的原因,因为我已经知道没有原因ViewPagerandroid.app
jonstaff

Answers:


183

您可以ViewPagerandroid.app包中的本机片段与android.support.v13.app包中的适配器一起使用。您必须使用v13支持jar。

有两种版本的适配器可使用ViewPagerv4软件包中的适配器旨在与支持片段一起使用,适配器的v13本机片段与本机片段一起使用。

现在有两个片段实现的原因是历史悠久的:android.app软件包中的片段仅在平板电脑的Android 3中引入,并且创建了支持库以将片段带给运行较早版本的手机。在Android 4上,两者都有。

根据我自己的经验,即使在为Android 4开发时,我也建议使用支持片段。这有一些原因:片段还是支持片段?


3
这次真是万分感谢!我知道我参加晚会很晚,但是这个答案对我有很大帮助。
凯尔2013年

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

android.app没有FragmentPagerAdapter,那么就不可能将viewpager与android.app.Fragment一起使用?这里有什么主意吗?旧视图传呼机有什么选择吗?为了动态地挂钩给定标签的片段
Nikhil

@Nikhil有FragmentPagerAdapter的两个版本。android.support.v4.app软件包中的一个使用支持片段,另一个android.support.v13.app使用“正常”片段
brillenheini 2015年

我希望使用v13,以便避免使用v4。原来v4是v13的依赖项,因此我不妨使用支持片段/视图传呼器。
Vas

3

android.app.Fragment自Android P(链接)以来,该类已弃用,因此仅android.support.v4.app.Fragment应在任何地方使用。


1

如果要使用API​​ 11+,则不需要支持库(至少实际apk会更小)。

如果您想在Android 3.x之前支持任何功能,则需要支持库。

这是您要的吗?


9
您需要使用支持库才能使用他正在询问的
ViewPager

@Matt感谢您的回答,但我正在寻找结合ViewPager功能的最佳解决方案,并解释为什么该解决方案最佳。
jonstaff
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.