Fragment常用三个类:
Fragment:定义Fragment本身。
FragmentManager:管理Activity中的Fragment
FragmentTrasaction:对Fragment进行各种具体操作,而且其操作具有原子性。操作完成必须调用commit()方法,统一执行。
Fragment的使用有两种方式:
1.直接在Activity的layout里设置<Fragment>
标签,这种属于静态使用,Fragment和其他控件无异;
2.利用代码,在Activity里动态加载Fragment,这种方法可以降低Fragment和activity的耦合度,提高程序的灵活性,同时,Fragment还可以被多个Activity复用。
Fragment动态加载的方法
-
重写Fragment类,实现自己的Fragment。可以重写Fragment类的OnCreateView()方法来实现自己Fragment的布局。
-
获得FragmentManager对象:FragmentManager fm = getFragmentManager();
-
获得FragmentManagerTrasaction对象: FragmentManagerTrasaction ft =
fm.beginTrasaction();
FragmentManagerTrasaction有如下几个比较重要的操作:
add():添加一个Fragment;
remove():移除一个Fragment;(如果被移除的Fragment没有被加载进回退栈,则会被销毁)
replace():先移除当前,然后用另一个替换。
hide();隐藏Fragment,使被隐藏的Fragment不可见,但是不销毁。
show():显示隐藏的Fragment .
detach():把Fragment与Activity解除联系,但Fragment的实例还在,由FragmentManager维护。
Attach():重建Fragment的view视图,附加到UI上并显示。
以上操作可以随意组合,等操作语句写完,调用commit()函数提交,使这一系列操作得以连续执行,保证其原子性。
Fragment回退栈:`有点类似于activity的Task栈,Activity会为Fragment维护一个回退栈,可以调用FragmentTrasaction.addToBackStack(String);来把Fragment加入回退栈,这样在点击系统的回退按钮时,Fragment可以依次实现回退的功能。
版权声明:本文为博主原创文章,未经博主允许不得转载。