Fragment是activity的界面中的一部分或一种行为。你可以把多个Fragment们组合到一个activity中来创建一个多面界面并且你可以在多个activity中重用一个Fragment。Fragment具有自己的生命周期,接收它自己的事件,并可以在activity运行时被添加或删除。
Fragment不能独立存在,它必须嵌入到activity中,而且Fragment的生命周期直接受所在的activity的影响。例如:当activity暂停时,它拥有的所有的Fragment们都暂停了,当activity销毁时,它拥有的所有Fragment们都被销毁。然而,当activity运行时(在onResume()之后,onPause()之前),你可以单独地操作每个Fragment,比如添加或删除它们。
当向activity中添加一个Fragment时,它须置于ViewGroup控件中,并且需定义Fragment自己的界面。你可以在layout.xml文件中声明Fragment,元素为:<fragment>;也可以在代码中创建Fragment,然后把它加入到ViewGroup控件中。然而,Fragment不一定非要放在activity的界面中,它可以隐藏在后台为actvitiy工作。
先写一个fragment文件,然后往main.xml文件里面添加fragment,会跳出页面让你选择,如下图:
然后生成类似如下的代码:
<fragment
android:id="@+id/NewItemFragment"
android:name="com.example.todolist.NewItemFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
这种情况需要如下代码:
DetailFragment df = new DetailFragment();
FragmentTransaction ft = this.getFragmentManager().beginTransaction();
ft.add(R.id.NewItemFragment, df);
ft.commit();
代码下载地址:点击打开链接
代码的架构:
运行效果:(由于是在AVD上演示的,所以横屏的效果没有),点击LinearLayout就有右边的效果
代码下载地址:点击打开链接
代码架构:
演示效果: