android.app.Fragment在API 级别 11 中 添加,已在API 级别 28 中弃用。
二、Fragment为什么被称为第五大组件
Fragment比Activity更节省内存,其切换模式也更加舒适,使用频率不低于四大组件,且有自己的生命周期,而且必须依附于Activity,不能独立存在。
特点:
-
Fragment依赖于Activity,不能独立存在
-
一个Activity可以有多个Fragment
-
一个Fragment可以被多个Activity重用
-
Fragment有自己的生命周期,并能接收输入事件
-
可以在Activity运行时动态地添加或删除Fragment
三、Activity创建Fragment的方式
静态创建
-
定义Fragment的xml布局文件
-
自定义Fragment类,继承Fragment类或其子类,同时实现onCreateView()方法,在方法中通过inflater.inflate加载布局文件,接着返回其View
-
在需要加载Fragment的Activity对应布局文件中的name属性设为全限定类名,即包名.fragment
-
最后在Activity调用setContentView()加载布局文件即可
样例:
1.定义Fragment的xml布局文件(新建fragment_home.xml和fragment_mine.xml)
fragment_home.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:orientation=“vertical”
android:background=“@color/color_ff0000”
android:gravity=“center”
<TextView
android:id=“@+id/tv_on”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:text=“首页”
android:onClick=“onClick”
android:textColor=“@color/white”
android:textSize=“@dimen/text_size_20”/>
fragment_mine.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:layout_width=“match_paren