轉自html
http://blog.csdn.net/a465456465/article/details/10415211java
app包中的fragment和v4包中的fragment的使用的區別
一、儘可能不要用app包中的fragment,由於這個是在3.0以後纔有的,支持的版本過高,在低版本中是是用不了的
二、android.support.v4.app.Fragment:能夠兼容到1.6的版本,
三、關於這兩個fragment使用<fragment>標籤的問題
(1)app.fragment和v4.fragment都是能夠使用<fragment>標籤的
只是在在使用的時候若是是app.fragment則沒有什麼特殊的地方繼承Activity即 可。
(2)當v4.fragment使用<fragment>標籤的時候就要特別注意了:
當這個Activity的佈局中有<fragment>標籤的時候,這個Activity必須繼承
FragmentActivity,不然就會報錯
08-27 08:25:04.946: E/AndroidRuntime(9839): Caused by: java.lang.ClassCastException: com.example.android_fragment_bottom.fragments.TopBarFragment cannot be cast to android.app.Fragment
此時若是不卜繼成FragmentActivity的話 編譯系統會把<fragment>認爲是app包中的Fragment來處理。可是此時咱們導入的是v4包中的Fragment
Android官方文檔中的Fragment的例子就是以app包中的Fragment來說解的。
android
(3)app包中關於Fragment的類和方法在V4包中都是有相應的對應的app
能夠看看這裏getSupportFragmentManager().getFragments()方法在V4包中消失了?
http://www.eoeandroid.com/thread-328896-1-1.html
(出處: eoe Android開發者社區_Android開發論壇)佈局