在 Android 3.0 中将 android.app.Fragment 与 ViewPager 一起使用
我正在使用 android:minSdkVersion="11" 开发应用程序。据我所知,ViewPager 是在兼容性库中实现的。我通过添加 android-support-v4.jar 库成功地使其在我的应用程序中工作,但现在我不得不使用
android.support.v4.app.FragmentActivity
因为我需要 FragmentPagerAdapter 的 getSupportFragmentManager(),而不是新的 android.app.Activity 的 getFragmentManager()。
我还需要使用
android.support.v4.app.Fragment
而不是
android.app.Fragment
虽然它有效,但我绝对不喜欢这种方法。它破坏了应用程序的设计,我根本不想在我的 API 级别 11 项目中使用兼容性库。
是否还有其他更原生的方式在 Honeycomb+ 应用程序中使用 ViewPager?
I am developing app with android:minSdkVersion="11". From what I know, ViewPager is implemented within Compatibility Library. I have succeed to make it work in my application by adding android-support-v4.jar library, but now I am obliged to use
android.support.v4.app.FragmentActivity
because I need getSupportFragmentManager() for FragmentPagerAdapter, instead of new android.app.Activity's getFragmentManager().
Also I need to use
android.support.v4.app.Fragment
instead of
android.app.Fragment
It works though, I definitely don't like this approach. It destroys design of app, and I don't want to have Compatibility Library in my API Level 11 project at all.
Are there other more native ways to use ViewPager in Honeycomb+ apps?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在陈述接受的答案时情况可能并非如此,但 中有
import android.support.v13.app.FragmentStatePagerAdapter;
href="https://github.com/search?q=android.support.v4.app.FragmentStatePagerAdapter%20repo%3aandroid/platform_development%20repo%3acommonsguy/cw-omnibus%20extension%3ajava&type=Code">示例代码。如果您使用 support-v13 库,构造函数将采用FragmentManager
的非支持版本。请注意,ViewPager
仍必须来自 v4。我还要补充一点,v4 表示 Android 版本 4+ (Donut 1.6) 的支持库,v13 表示 Android 版本 13+ (Honeycomb 3.2) 的支持库。只是一个事实至少对我来说并不是显而易见的。这意味着 v4/v13 中使用的 API 与该版本兼容并且可以追溯到该版本。
It may not have been the case at the time the accepted answer was stated, but there's
import android.support.v13.app.FragmentStatePagerAdapter;
in the sample code. If you use support-v13 library the constructor takes a non-support version of theFragmentManager
. Note that theViewPager
must still come from v4.I'll also add that v4 means support library for Android version 4+ (Donut 1.6), and v13 means support library for Android version 13+ (Honeycomb 3.2). Just a fact that wasn't immediately obvious to me at least. Meaning the APIs used in v4/v13 are compatible with and versions back to that point.
将
FragmentPagerAdapter
复制到您的代码中并修改它以使用android.app.Fragment
等。或者自己实现自己的PagerAdapter
,它不依赖完全在碎片上。Copy
FragmentPagerAdapter
into your code and modify it to useandroid.app.Fragment
, etc. Or implement your ownPagerAdapter
yourself, it does not depend on fragments at all.