Использование android.app.Fragment с ViewPager в Android 3.0+ - PullRequest
7 голосов
/ 08 ноября 2011

Я занимаюсь разработкой приложения с android: minSdkVersion = "11".Из того, что я знаю, ViewPager реализован в библиотеке совместимости.Мне удалось заставить его работать в моем приложении, добавив библиотеку android-support-v4.jar, но теперь я обязан использовать

android.support.v4.app.FragmentActivity

, потому что мне нужен getSupportFragmentManager () для FragmentPagerAdapter, а не новый android.app.Activity's getFragmentManager ().

Также мне нужно использовать

android.support.v4.app.Fragment

вместо

android.app.Fragment

Это работает, хотя, мне определенно не нравится этот подход.Это разрушает дизайн приложения, и я вообще не хочу иметь библиотеку совместимости в моем проекте API уровня 11.

Существуют ли другие более естественные способы использования ViewPager в приложениях Honeycomb +?

Ответы [ 2 ]

13 голосов
/ 17 апреля 2013

На момент принятия принятого ответа, возможно, это не имело место, но в образце кода есть import android.support.v13.app.FragmentStatePagerAdapter;.Если вы используете библиотеку support-v13, конструктор принимает не поддерживаемую версию FragmentManager.Обратите внимание, что ViewPager должен по-прежнему исходить из v4.

Я также добавлю, что v4 означает поддержку библиотеки для Android версии 4+ (Donut 1.6), а v13 означает поддержку библиотеки для Android версии 13+ (Honeycomb3,2).Просто факт, который не был сразу очевиден для меня, по крайней мере.Это означает, что API, используемые в v4 / v13, совместимы с версиями до этого момента.

8 голосов
/ 08 ноября 2011

Скопируйте FragmentPagerAdapter в свой код и измените его для использования android.app.Fragment и т. Д. Или реализуйте свой собственный PagerAdapter самостоятельно, он не зависит от фрагментов вообще.

...