Fragment是activity的界面中的一部分或一種行為。你能夠把多個Fragment們組合到一個activity中來創建一個多面界面而且你能夠在多個activity中重用一個Fragment。你能夠把Fragment覺得模塊化的一段activity,它具有自己的生命周期,接收它自己的事件。並能夠在activity執行時被加入或刪除。
一個好的帖子:http://my.oschina.net/u/270164/blog/85347。
使用Fragment的包為android.app.FragmentManager,可是因為其對3.0下版本號不兼容,所以要 引入android.support.v4.app.FragmentManager 兩個包對Fragment同樣方法的定義有所不同,因此在import時,常常easy混淆導致程序報錯。以下就來總結下:
1、編譯無錯誤,執行時報錯:android.view.InflateException: Binary XML file line #7: Error inflating class fragment
出現了上述錯誤,原因往往是你在某個.xml文件使用了<fragment>標簽,但相應的xx.java文件里import的卻是android.support.v4.app.Fragment。android.support.v4.app.Fragment:能夠兼容到1.6的版本號,不能使用<fragment>標簽,須要在程序中通過add或者replace的方式加入。
2、編譯錯誤:
代碼如上。在add處提示:The method add(Fragment, String) in thetype FragmentTransaction is not applicable for the arguments (Frag1, String)。
原因:我的Frag1.java中。import的包是 android.app.Fragment所以報錯。
改成import android.support.v4.app.Fragment;就好了。
3、此外,在調用Activity時,包為 android.support.v4.app.FragmentActivity的類,都extends的是FragmentActivity而不是Activity。