2011-11-08 72 views
7

我使用android:minSdkVersion =「11」開發應用程序。據我所知,ViewPager在Compatibility Library中實現。我必須成功,使之在我的應用程序中加入Android的支持,v4.jar庫工作,但現在我不得不使用在Android 3.0+中使用android.app.Fragment和ViewPager

android.support.v4.app.FragmentActivity

因爲我需要getSupportFragmentManager()爲FragmentPagerAdapter,而不是新的android.app.Activity的getFragmentManager()。

此外,我需要使用

android.support.v4.app.Fragment

,而不是

android.app.Fragment

它雖然作品,我絕對不喜歡這種方法。它破壞了應用程序的設計,我不想在我的API Level 11項目中擁有兼容性庫。

在Honeycomb +應用程序中還有其他更原生的方式使用ViewPager嗎?

+0

接受的答案應該[change](http://stackoverflow.com/a/16067755/1747491)現​​在已發佈'v13'。 – theblang

回答

13

在接受答案時,情況可能並非如此,但sample code中有import android.support.v13.app.FragmentStatePagerAdapter;。如果您使用support-v13庫,則構造函數將採用FragmentManager的非支持版本。請注意,ViewPager必須仍然來自v4。

我還會補充說,v4意味着支持Android版本4+(Donut 1.6)的支持庫,而v13意味着Android版本13+(Honeycomb 3.2)的支持庫。只是一個事實,至少對我來說並不明顯。這意味着v4/v13中使用的API與以前的版本兼容,並且版本與此相同。

7

FragmentPagerAdapter複製到您的代碼並修改爲使用android.app.Fragment等。或者自己實現您自己的PagerAdapter,它根本不依賴於片段。

+0

你的意思是在修改它之後,我也可以在我的應用程序中使用ViewPager代碼?我在哪裏可以獲得兼容性庫的來源?它是Honeycomb的唯一方式,沒有更多的本地或通用? – morphium

+0

下載包含源代碼。如果您從SDK管理器安裝它,它將位於$ SDK_ROOT/extras/android/compatibility/v4/src中。不知道'native或universal'是什麼意思,但'ViewPager'不是Android SDK的一部分,你必須將它添加到你的項目中,以庫或者源代碼形式使用它。 –

+0

我已經複製FragmentPagerAdapter,並使其與android.app.Fragment一起使用。但是這種方法仍然假定我必須使用android-support-v4.jar庫。完全正常嗎? – morphium

相關問題