Fragments(译)

一个Fragment表示一个活动部分界面的行为。你可以将多个fragment整合在一个活动中来创建一个多面板的活动,也可以将一个Fragment应用到多个界面中。你可以认为fragment就是活动的某个功能模块,拥有自己的生命周期,单独接受输入事件,并且还可以在活动运行时加入到活动中。(Fragment就像是一个子活动,可以在多个活动中重复使用)

Fragment必须嵌在活动中,活动的生命周期由活动直接影响。例如,当活动停止了,所有的Fragment也都停止;当活动被销毁了,Fragments也被销毁。当活动运行时,你可以操作单独的操控每个Fragment,如添加,删除等。当你执行片段事务时,你还可以将其加入到活动的后退栈中:活动的后退栈是一系列片段堆积的栈。后退栈允许用户执行反向片段事务通过按后退键。例如,活动A有3个片段1,2,3. 当一次点击片段1,2,3时,进入到片段3界面,而这时按后退键,则回到2界面,在按后退键,则回到1界面。

当你要在活动布局中添加片段时,需要提供一个ViewGroup来陈放他,并且片段有自己的布局。你也可以插入一个片段到活动布局中通过在活动布局中声明<fragment>标签,或者在代码中添加到ViewGroup中。片段并不是一定要在活动布局中体现,Fragment也可以没有UI。

这篇文章旨在描述如何使用Fragment构造应用:包括片段的状态控制当被添加进活动后退栈,如何与活动或其他片段共享事件,有助于活动动作条。

设计哲学

Android在3.0之后引入片段概念,其引入的目的主要是支持动态活动的Ui设计在大屏幕,如平板。

创建片段

为了创建片段,你需要继承Fragment类。Fragment类与活动类相似,有很多回调函数如onCreate,onStart,onPause,onStop等。如果你想用片段代替你应用中的活动,你只需简单地将活动中回调函数的内容拷贝到片段中。

通常,你需要实现下列三个片段的生命周期方法:

onCreate

onCreateView

onPause

添加用户界面

一个片段经常用来作为活动的部分界面。

想要给片段提供布局,你必须实现onCreateView方法,该方法会在Android系统激活片段时调用。该方法的返回值是片段的视图。

给活动添加片段

两种方式:

1. 在活动的布局文件中声明片段。

2. 通过编程方式添加片段到已经的ViewGroup中。

你可以在活动运行时添加片段到活动布局中。你只需要指定一个ViewGroup来盛放他。如果想要实现片段事务(如添加,移除,替换等)。你需要使用FragmentTransaction。

FragmentTransaction的实例方式如下:

FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

添加片段的方式如下:

ExampleFragment fragment = new ExampleFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();

管理片段:

使用FragmentManager管理片段。

使用FragmentManager做下列事情:

1. 获得一个已有的活动通过findFragmentById() 或 findFragmentByTag() 的方式

2. 弹出后退栈中的片段,通过popBackStack方法。

3. 注册监听器监听后退栈的变化。

 

posted on 2015-04-27 23:17  青崖绿舟  阅读(244)  评论(0)    收藏  举报

导航