初学android,遇到fragment的问题,记录下来!
fragment有android.support.v4.app.fragment包和android.app.fragment之分,它俩的区别在于:
android.app.fragment包是是3.0以后的系统才能使用的,也就是说3.0以前的系统是没法体验到这个包的功能。
而android.support.v4.app.fragment包是为了向下兼容,使低版本(到1.6版本)也能体验到fragment的功能。
推荐使用v4包下的,这样可以使APP适应更多机型。
它俩在使用上也是有区别的:
1.首先一点是在管理fragment的主activity上, app包下的照样继承Activity,但是v4包下的需要继承FragmentActivity,
2.对FragmentManager的获取,在app包下需要使用getFragmentManager(),如下:
FragmentMagnager fm=getFragmentManager();
在v4包下需要使用getSupportFragmentManager()来获取管理,代码如下:
FragmentMagnager fm=getSupportFragmentManager();
3.我们把用来显示特定的fragment的动作称之为事务,事务通过FragmentTransaction来执行,用以下方法对FragmentTransaction进行实例化:
FragmentTransaction transaction=fragmentManager.beginTransaction();
然而v4包与app包的区别在于,v4包必须事务添加完fragment后加上commit();顾名思义,commit是提交的意思,我们对事务添加的所有动作最后都要提交,即添加完事务的最后一定要执行transaction.commit();不然会导致异常。