关于Fragment的知识点_第1页
关于Fragment的知识点_第2页
关于Fragment的知识点_第3页
关于Fragment的知识点_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android在Android3.0(API11级)中引入了Fragment,主若是为了给大屏幕(如平板电脑)上加倍动态和灵活的UI设计提供支持。由于平板电脑的屏幕比电话屏幕大得多,因此可用于组合和互换UI组件的空间更大。利用Fragment实现此类设计时,您无需治理对视图层次结构的复杂更改。通过将Activity布局分成Fragment,您能够在运行时修改Activity的外观,并在由Activity治理的返回栈中保留这些更改。要想创建Fragment,您必需创建Fragment的子类(或已有其子类)。Fragment类的代码与Activity超级相似。它包括与Activity类似的回调方式

2、,如onCreate()、onStart()、onPause()和onStop()。事实上,若是您要将现有Android应用转换为利用Fragment,可能只需将代码从Activity的回调方式移入Fragment相应的回调方式中。通常,您至少应实现以下生命周期方式:onCreate()系统会在创建Fragment时挪用此方式。您应该在实现内初始化您想在Fragment暂停或停止后恢复时保留的必需Fragment组件。onCreateView()系统会在Fragment第一次绘制其用户界面时挪用此方式。要想为您的Fragment绘制UI,您从此方式中返回的View必需是Fragment布局的根

3、视图。若是Fragment未提供UI,您能够返回null。onPause()系统将此方式作为用户离开Fragment的第一个信号(但并非老是意味着此Fragment会被销毁)进行挪用。您通常应该在此方式内确认在当前用户会话终止后仍然有效的任何更改(因为用户可能可不能返回)。大多数应用都应该至少为每一个Fragment实现这三个方式,但您还应该利用几种其他回调方式来处置Fragment生命周期的各个时期。那个地址介绍几个Fragment的子类,均是为了方便大伙儿的利用,SDK勺封装:DialogFragment显示浮动对话框。利用此类创建对话框可有效地替代利用Activity类中的对话框帮忙程序

4、方式,因为您能够将Fragment对话框纳入由Activity治理的Fragment返回栈,从而利用户能够返回清除的Fragment。ListFragment显示由适配器(如SimpleCursorAdapter)治理的一系列项目,类似于ListActivity。它提供了几种治理列表视图的方式,如用于处置点击事件的onListItemClick()回调。PreferenceFragment以列表形式显示Preference对象的层次结构,类似于PreferenceActivity。这在为您的应用创建“设置”Activity时很有效途。Fragment通经常使用作Activity用户界面的一部份

5、,将其自己的布局融入Activity。要想为Fragment提供布局,您必需实现onCreateView()回调方式,Android系统会在Fragment需要绘制其布局时挪用该方式。您对此方式的实现返回的View必需是Fragment布局的根视图。注:若是您的Fragment是ListFragment的子类,那么默许实现会从onCreateView()返回一个ListView,因此您无需实现它。要想从onCreateView()返回布局,您能够通过XML中概念的布局资源来扩展布局。为帮忙您执行此操作,onCreateView()提供了一个LayoutInflater对象。例如,以下那个Fra

6、gment子类从文件加载布局:publicstaticclassExampleFragmentextendsFragmentOverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState)/Inflatethelayoutforthisfragmentreturn(,container,false);在上例中,是对应用资源中保留的名为的布局资源的引用。传递至onCreateView()的container参数是您的Fragment布局将插入到的父ViewGroup

7、(来自Activity的布局)。savedInstanceState参数是在恢复Fragment时,提供上一Fragment实例相关数据的Bundle。inflate。方式带有三个参数:.布局的资源ID;.布局父项的ViewGroup。传递container对系统向扩展布局的根视图(由其所属的父视图指定)应用布局参数具有重要意义;.指示是不是应该在扩展期间将扩展布局附加至ViewGroup(第二个参数)的布尔值。(在本例中,其值为false,因为系统已经将扩展布局插入container传递true值会在最终布局中创建一个多余的视图组。)那么如何将该Fragment添加到您的Activity中?

8、通常,Fragment向宿主Activity奉献一部份UI,作为Activity整体视图层次结构的一部份嵌入到Activity中。能够通过两种方式向Activity布局添加Fragment:在Activity的布局文件内声明Fragment例如,以下是一个具Fragment 类。Fragment,并为每的布局。系统会直接时,系统能够利用 以执行某些事务,如布局中。您只需指定fragmentandroid:name=android:id=+id/listandroid:layout_weight=1android:layout_width=0dpandroid:layout_height=mat

9、ch_parent/fragmentandroid:name=android:id=+id/viewerandroid:layout_weight=2android:layout_width=0dpandroid:layout_height=match_parent/fragment标签中的android:name属性指定要在布局中实例化的当系统创建此Activity布局时,会实例化在布局中指定的每一个一个Fragment挪用onCreateView()方式,以检索每一个Fragment插入Fragment返回的View来替代fragment元素。注:每一个Fragment都需要一个唯一的标识

10、符,重启Activity该标识符来恢复Fragment(您也能够利用该标识符来捕捉Fragment将其删除)。能够通过三种方式为Fragment提供ID:为android:id属性提供唯一ID为android:tag属性提供唯一字符串若是您未给以上两个属性提供值,系统会利用容器视图的ID或通过编程方式将Fragment添加到某个现有ViewGroup您能够在Activity运行期间随时将Fragment添加到Activity要将Fragment放入哪个ViewGroup。要想在您的Activity中执行Fragment事务(如添加、删除或替换Fragment),您必需利用FragmentTransaction中的API。您能够像下面如此从Activity获取一个FragmentTransaction实例:FragmentManagerfragmentManager=getFragmentManager()FragmentTransactionfragmentTransaction=();然后,您能够利用add()方式添加一个Fragment,指定要添加的Fragment和将其插入哪个视图。例如:ExampleFragmentfragment=newExampleFragment();(,fragm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论