Fragment:即碎片,是可以嵌入在Activity中的UI片段。
一、Fragment的简单使用
1.新建一个布局文件fragment_xxx.xml;
2.新建一个类xxxFragment继承Fragment类,重写OnCreateView()方法导入布局文件;此时,准备工作完成。
3.在activity的布局文件activity_xxx.xml中使用该Fragment
<fragment
.......
android:name="com.xxx.xxxFragment"
....../>
4.现在就可以在activity中像使用其他控件那样使用fragment了。
二、Fragment的通信
1.在Activity中使用Fragment对象
在Activity中,可以通过Fragment xxxFragment = Fragmanager.findViewById(R.id.xxxfragment)获得Fragment对象
2.在Fragment中获得Activity对象
在Fragment中,可以通过XXXActivity xxx = (XXXActivity) getActivity();获得和当前碎片相关的Activity(Context)实例。
4.Fragment之间的相互通信
可以先获得Activity实例,再通过Activity获得Fragment实例。
三、动态使用Fragment
使用步骤和静态使用fragment一样,只是在Activity中的使用有所不同:
FragmentManager manager = getFragmentManager();
// 开启Fragment事务
FragmentTransaction transaction = manager .beginTransaction();
//做其他操作
transaction.replace(R.id.xxfragment,xxxFragment);
//事务提交
transaction.commit();
常用的操作
transaction.add()
往Activity中添加一个Fragment
transaction.remove()
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈,这个Fragment实例将会被销毁。
transaction.replace()
使用另一个Fragment替换当前的,实际上就是remove()然后add()的合体~
transaction.hide()
隐藏当前的Fragment,仅仅是设为不可见,并不会销毁
transaction.show()
显示之前隐藏的Fragment