2013-02-27 79 views

回答

236

android.support.v4.app.Fragment是android支持庫中的Fragment類,它是一個兼容性包,允許您在較早版本的Android上使用Android的某些較新功能。

android.app.Fragment是Android SDK本地版本中的Fragment類。它在Android 3(API 11)中引入。

如果您想讓應用程序使用片段,並且希望在API 11之前將設備定位到目標設備,則必須使用android.support.v4.app.Fragment。但是,如果您只針對運行API 11或更高版本的設備,則可以使用android.app.Fragment

+3

另請參閱「使用FragmentStatePagerAdapter WITHOUT支持庫」:http://stackoverflow.com/questions/18512294/using-fragmentstatepageradapter-without-support-library – CJBS 2014-08-01 20:30:55

+0

如果您重寫onAttach(),請參閱此線程以避免它在某些情況下使用android.app.Fragment調用:https://stackoverflow.com/questions/32083053/android-fragment-onattach-deprecated – Hong 2017-07-26 22:11:38

10

我專門使用android.support.v4.app.Fragment

我寫的所有應用程序都需要支持Android 2.3,這是最簡單的方法。

如果您支持11+,然後堅持android.app.Fragment

+12

在這種情況下,您錯過了支持中存在的許多功能圖書館,但只有在某個API級別之後的本地圖書館。 getChildFragmentManager()例如直到級別17纔可用。 我的建議是隻使用支持碎片並假裝本地不存在。 – Johan 2015-08-06 09:09:30

2

android.support.v4.app.Fragment是一個庫,您可以使用它來獲取舊版API版本的向後兼容性。

在API級別11上添加了片段(以及其他功能),您應該包括該庫以將這些功能擴展到API 11之前的設備。這是一個非常有用的庫,我建議查看ActionBarSherlock,它將操作欄擴展到pre-API v11設備。

4

如果您的應用程序針對的是API 11或更高版本,則可以使用android.app.Fragment,您的APK文件將會更小。

否則,將android.support.v4.app.Fragment庫添加到您的項目以支持較舊的Android API版本(Android 3.x)。

1

的答案是完全正確

但隨着時間的推移,並根據https://en.wikipedia.org/wiki/Android_version_history這是相當罕見的,您的新的Android應用程序必須支持Android SDK中的設備不到11

所以你可以忘掉android.support.v4.app.Fragment並在您的應用中安全使用android.app.Fragment

相關問題