目录
一、什么是Fragment
Fragment是一种可以嵌入在Activity中的 UI 片段,它能让程序更加合理和充分。
地利用大屏幕的空间,因而在平板和目前的大屏手机上应用的非常广泛(只要屏幕大,都会用到Fragment)。
一个碎片在一个活动中代表一个行为或用户界面的一部分。 你可以在一个单一的活动中组合使用多个碎片以建立一个多窗格的UI,并且可以在多个活动中重用一个碎片。你可以认为是一个拥有独立生命周期、能够独立接受输入事件、并且可以在活动运行时添加或移除的碎片作为一个活动的模块化部分(有点像一个你可以在不同活动中重用的子活动)。
Activity的频繁的创建和销毁比较消耗时间,使用Fragment可以避免这种情况。
Fragment:轻量级的Activity,Fragment不需要在清单文件中注册。
二、Fragment的生命周期
Fragment有自己独立的生命周期,但是它有是依托于Activity的,所以Fragment的生命周期直接受Activity的影响
- onAttach()
当该Fragment被添加到Activity时被回调。该方法只会被调用一次 - onCreate()
当创建Fragment时被回调。该方法只会被调用一次 - onCreateView()
每次创建、绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件 - onActivityCreated()
当Fragment的宿主Activity被启动完成后回调该方法 - onStart()
启动Fragment时被回调 - onResume()
onStart()方法后一定会回调onResume()方法 - onPause()
暂停Fragment时被回调 - onStop()
停止Fragment时被回调 - onDestroyView()
销毁该Fragment所包含的View组件时调用 - onDestroy()
销毁Fragment时被回调。该方法只会被调用一次 - onDetach()
将Fragment从Activity中删除、替换完成时调用该方法。onDestroy()方法后一定会回调onDetach()方法。该方法只会被调用一次
三、Fragment的静态使用
1、定义Fragment的布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorAccent">
<TextView
android:layout_width="