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简介

Fragment是Android honeycomb 3.0新增的概念,Fragment名为碎片不过却和Activity十分相似,下面介绍下Android Fragment的作用和用法。Fragmen...
  • yangdeli888
  • yangdeli888
  • 2012年08月08日 09:59
  • 4560

fragment简介及你应该知道的一切

Fragment(片段,碎片),正如其翻译那样,它在一个activity里面表示一个行为或者用户接口的一部分(碎片表示轻量级和灵活)。我们可以将不同的Fragments组合起来放到一个activity...
  • rabbit_in_android
  • rabbit_in_android
  • 2015年12月14日 19:48
  • 703

Fragment的相关用法第三篇(张鸿洋)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟...
  • u010597493
  • u010597493
  • 2017年01月03日 11:19
  • 278

Android Fragment简介

TabActivity在Android4.0以后已经被完全弃用,取而代之的是Fragment。Fragment是Android3.0新增的概念,Fragment翻译成中文是碎片的意思,不过却和Acti...
  • kc58236582
  • kc58236582
  • 2015年11月06日 10:47
  • 379

android碎片Fragment简介

本文转载于:http://www.apkbus.com/android-122431-1-1.html 我们都知道,Android上的界面展示都是通过Activity实现的,Activity...
  • TODD911
  • TODD911
  • 2014年07月17日 16:37
  • 587

Android Fragment(一)---简介

Fragment是Android 3.0引入的新API。Fragment代表了Activity的子模块,因此可以把Fragment理解成Activity的片段。Fragment拥有自己的生命周期,也可...
  • u011026329
  • u011026329
  • 2015年08月21日 19:13
  • 318

Android在Fragment中嵌套(添加)Fragment

注意导包: import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; impo...
  • zhaihaohao1
  • zhaihaohao1
  • 2016年07月08日 18:34
  • 3837

Android之Fragment(一):静态使用碎片

创建Fragmentpublic class MyFragment extends Fragment { @Override public View onCreateView(Layo...
  • lj2012sy
  • lj2012sy
  • 2016年06月14日 15:02
  • 537

Android fragment监听返回键

fragment需要监听返回键时分两种情况,一种是有其他控件获取了焦点,另一种是没有其他控件获得焦点。 先看第二种情况,代码如下: MyFragment.Java [...
  • love_xiaozhao
  • love_xiaozhao
  • 2017年04月10日 12:38
  • 636

Android Fragment继承问题的分析

若A(Fragment)继承B(Fragment)那么在A正常运行启动时,B中的 onCreateVew是不会运行的。正常运行的是,onActivityCreated、与B中的无参数构造器。publi...
  • mvpstevenlin
  • mvpstevenlin
  • 2016年06月23日 20:26
  • 826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Fragment简介
举报原因:
原因补充:

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