标签:
一、关于Fragmemt
1、安卓系统3.0介绍了Fragment,主要是为了支持更多的动态和灵活的用户界面设计,如平板电脑。Fragment允许组合和交换用户界面组件,而不需要更改视图层次结构。通过摆个Activity的布局划分成Fragment,可以再运行时修改Activity的外观,并保留在Activity堆栈中的更改。
2、Fragment表示Activity中的用户界面的行为或部分。可以将多个Fragment组合在一个Activity中,以构建多窗格用户界面,并在多个活动中重用Fragment。可以把Fragment当作一个Activity的模块部分,它有自己的生命周期,接受自己的输入事件,你可以在Activity正在运行时添加或删除。
3、一个Fragment必须始终嵌在一个Activity中,该片段的生命周期直接受宿主Activity的生命周期的影响。例如,当Activity暂停时,所有的Fragment都是这样,当Activity被破坏时,所有的Fragment都被破坏。然而,当一个Activity正在运行,可以独立操作每一个Fragment,如添加删除它们。
二、Fragment生命周期图解
1. 当一个fragment被创建的时候,它会经历以下状态.
2. 当这个fragment对用户可见的时候,它会经历以下状态。
3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。
4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。
三、创建Fragment
要创建一个Fragment,你必须创建一个Fragment的子类(或它的一个现有的子类)。
Fragment类的代码看起来很像一个Activity。它含有类似于Activity的回调方法,如oncreate(),onstart(),onpause(),和onstop()。
事实上,如果你将一个现有的安卓应用程序转换为使用Fragment,你可能会将代码从Activity的回调方法转移到你的Fragment的相应的回调方法中。
通常,你应该至少实现以下生命周期方法:
oncreate()
当创建该Fragment时,该系统调用该。在你的实现中,你应该对你想要保留的Fragment进行初始化,然后在暂停或停止的时候,然后重新开始。
oncreateview()
该系统调用这个时候,以绘制其用户界面的第一次。要为你的Fragment绘制一个用户界面,你必须从这个方法中返回一个视图,这是你的Fragment布局的根。如果Fragment不提供用户界面,您可以返回null。
onpause()
该系统将该方法称为用户离开该Fragment(虽然并不总是意味着该Fragment被销毁);通常您应该提交当前用户所做的任何更改(因为用户可能不会回来)。
实例代码如下:
public class PhoneFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_phone, container, false); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onDestroy() { super.onDestroy(); } }
标签:
原文地址:http://www.cnblogs.com/pear-lemon/p/4874603.html