app包中的fragment和v4包中的fragment的使用的區別

app包中的fragment和v4包中的fragment的使用的區別,有須要的朋友能夠參考下。 java

一、儘可能不要用app包中的fragment,由於這個是在3.0以後纔有的,支持的版本過高,在低版本中是是用不了的。 android

二、android.support.v4.app.Fragment:能夠兼容到1.6的版本。 app

三、關於這兩個fragment使用標籤的問題:
(1)、app.fragment和v4.fragment都是可使用<fragment>標籤的,只是在使用的時候若是是app.fragment則沒有什麼特殊的地方,Fragment所在的Activity正常繼承Activity類便可。 spa

(2)、當v4.fragment使用標籤的時候就要特別注意了:
當這個Activity要使用android.support.v4.app.Fragment的時候,這個Activity必須繼承FragmentActivity,不然就會報錯: 繼承

Caused by: java.lang.ClassCastException: com.example.android_fragment_bottom.fragments.TopBarFragment cannot be cast to android.app.Fragment 文檔

此時若是不繼承FragmentActivity的話,編譯系統會把android.support.v4.app.Fragment當成app包中的Fragment來處理。可是此時咱們導入的是v4包中的Fragment。 get

Android官方文檔中的Fragment的例子就是以app包中的Fragment來說解的。 it

(3)、app包中關於Fragment的類和方法在V4包中都是有相應的對應的。 io

(4)、獲得FragmentManager的方法不同: 編譯

        android.app.Fragment:使用getFragmentManager()方法。

android.support.v4.app.Fragment:使用getSupportFragmentManager()方法。

相關文章
相關標籤/搜索