Fragment碎片的简单介绍及使用

一、Fragment的介绍

Fragment(碎片)是一种可以嵌入在活动中的UI片段,能够让程序更加合理和充分地利用大屏幕的空间,出现的初衷是为了适应大屏幕的平板电脑,可以将其看成一个小型Activity,又称作Activity片段。

使用Fragment可以把屏幕划分成几块,然后进行分组,进行一个模块化管理。Fragment不能够单独使用,需要嵌套在Activity中使用,其生命周期也受到宿主Activity的生命周期的影响

从官方的定义可以得到:

  • Fragment依赖于Activity,不能独立存在
  • 一个Activity可以有多个Fragment
  • 一个Fragment可以被多个Activity重用
  • Fragment有自己的生命周期,并能接收输入事件
  • 可以在Activity运行时动态地添加或删除Fragment

Fragment的优势:

  1. 模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。
  2. 可重用(Reusability):多个Activity可以重用一个Fragment。
  3. 可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。

二、Fragment的生命周期

从图中可以看出,Fragment的生命周期与Activity的生命周期十分相似,但是比Activity多5种方法。

  1. onAttach():当Fragment和Activity建立关联的时候调用
  2. onCreateView():为Fragment创建视图(加载布局)时调用。
  3. onActivityCreated():当Activity的onCreate()方法返回时调用
  4. onDestoryView():当该Fragment的视图被移除时调用
  5. onDetach():当Fragment和Activity解除关联时调用。

在这里插入图片描述

三、创建Fragment

在程序包名处单击右键,选择new–>Fragment->Fragment(Blank),即可进入Configure Component界面,在该界面指定Fragment名称,以及Fragment对应的布局名称。如图所示;
在这里插入图片描述

四、在Activity中添加Fragment

将Fragment添加到Activity中,也就是实现Fragment与Activity的通信,有两种方法:

1.通过布局文件添加。

使用Fragment 时,只需要将Fragment作为一个控件在Activity的布局文件中引用即可。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <fragment
        android:name="com.example.fragmentdemo.FragmentCourseList"
        android:id="@+id/list_fragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <fragment
        android:name="com.example.fragmentdemo.FragmentCourseDetail"
        android:id="@+id/detail_fragment"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="match_parent"/>
</LinearLayout>

2.当Activity运行时动态添加Fragment(强大之处)

Fragment的强大之处就在与可以动态的添加到Activity之中,这种方式更加灵活。
1.首先需要在activity_main中指定一个FrameLayout作为容器。

?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值