Android Fragment简介

原创 2015年11月19日 09:56:42

Fragment 的设计理念就是可以支持更灵活的UI操作, 同时对大屏幕的设备有了更好的适应性. Fragment可以理解为Activity里面的一个”子Activity”, 可以单独的处理动作增加删除等.每个Activity内部都维护着一个Fragment专用的堆栈, 这样用户在按下返回键的时候, 可以回到Fragment的前一个状态.

Fragment的添加:

可以通过在Activity的布局文件中添加<fragment>标签添加Fragment(静态), 或者在代码中直接添加一个fragment(动态).

通过标签指定fragment的xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.example.news.ArticleListFragment"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
    <fragment android:name="com.example.news.ArticleReaderFragment"
            android:id="@+id/viewer"
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</LinearLayout>

fragment:name指定了fragment的类. Fragment可以使用id或者tag来作为自己的唯一标识. 静态添加的fragment使用方便, 布局简单, 用法跟view等类似, 但是不可以被动态删除或者替换.

动态添加也不难, 三部曲:

首先你需要有一个viewgroup, 比如fragment_layout.

在Activity中获取到FragmentManager, 通过FragmentManager获取到FragmentTransaction

通过FragmentTransaction将fragment添加到指定的viewgroup里, 然后不要忘记commit().

替换和删除也是一个套路. 代码:

getFragmentManager().beginTransaction().add(R.id.fragment_layout, fragment).commit();

Fragment的生命周期:

Fragment的生命周期跟Activity非常类似, 大同小异. 并且方法的调用跟它的Activity是相关联的.

 

相比Activity新增加了onAttach(), onCreateView(), onActivityCreated(), onDestroyView(),onDetach(). 其中:

onAttach():表示当Activity与fragment关联的时候调用, 现在它有两个版本, 在API23之前是onAttach(Activity activity), API23之后推荐使用onAttach(Contextcontext), 在API23版本中onAttach(Activity activity)方法将不会被调用.

onCreateView():当fragment第一次绘制自己的界面的时候, 会调用该方法.

onActivityCreated(): 当Activity的onCreate()方法return之后, 会调用该方法.

销毁的方法跟前面的创建方法相对立, 就不说了. 下面是Activity和Fragment启动时回调方法的调用顺序: (Fragment的创建是在Activity的onCreate()方法中完成的)



参考: http://developer.android.com/guide/components/fragments.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android Fragment简介

Android Fragment简介• 背景 在手机开发的时候设计的UI往往要兼顾手机和平板屏幕的尺寸充分利用屏幕的空间,碎片(Fragment)是一种可以嵌入在活动当中的UI片段,它能让程序更加合...
  • c0586
  • c0586
  • 2017年03月09日 20:58
  • 109

Android之Fragment使用简介

Fragment是Android 3.0 (API level 11)后推出的新功能。Android3.0以前的版本也能用Fragment,不过得给工程导入一个android-support-v4.j...

Android Fragment简介及生命周期

1. 继承关系     java.lang.Object          |__android.app.Fragment     实现接口:ComponentCallbacks2 View.O...
  • hrp36
  • hrp36
  • 2016年06月17日 21:19
  • 145

Android入门之Fragment简介

本文翻译自Android developer网站,原文参考:Fragments 翻译完《Android入门之Fragment用法》之后发现还有引申文章,就是本文,进去一看,肝胆俱裂,好长的文章啊!但...

android碎片Fragment简介详解

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。  但是Activity也有它的局限性,同样的界面在手...

android之Fragment简介和使用实例

转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38013349 Fragment 是什么        今天我...

Android 程式开发:(三)初识Fragment —— 3.1简介

在之前的教程中,我们已经学习了什么是Activity以及如何使用它。在一个小屏幕的设备上,一个activity通常占据了整个屏幕,同时显示各种UI视图组件。Activity实际上就是视图的容器。然后,...

android Fragment简介

Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法。Fragmen...

Android Fragment(一)---简介

Fragment是Android 3.0引入的新API。Fragment代表了Activity的子模块,因此可以把Fragment理解成Activity的片段。Fragment拥有自己的生命周期,也可...

Android编程心得-FragmentActivity与Fragment两者交互方法简介

在Android4.0后很多时候我们会大量使用到Fragment,Fragment与Activity的交互应该来说是非常重要的,但目前很多实例方法都只介绍了Fragment与Activity交互的方法...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Fragment简介
举报原因:
原因补充:

(最多只允许输入30个字)