概念
Fragment英文原意是碎片,片段的意思,为了应对android的碎片化,Fragmnet的概念在Android3.0中被引入进来,主要目的是用在大屏幕设备上–例如平板电脑上,支持更加动态和灵活的UI设计。平板电脑的屏幕比手机大得多,有更多的空间来放更多的UI组件,并且这些组件之间会产生更多的交互。
Fragment在应用中应当是一个模块化和可重用的组件,因为Fragment定义了自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中,一个Activiy也可以包含多个Fragment。
下面这张图可以帮助理解Fragment的概念:
知识概要
- Fragment可以作为Activity界面的一部分组成出现
- 可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用
- 在Activity运行过程中,可以添加,移除或替换Fragment
- Fragment可以响应自己的输入时间,并且有自己的生命周期,其生命周期受宿主Activity的生命周期影响
Fragment的使用
创建Fragment
静态创建
静态创建需要在在布局文件中声明Fragment,需要特别注意的是Fragment中的android:name属性指定了在layout中实例化的Fragment类 ,同时必须要标识Fragment。
标识Fragment的方法:
android:id 属性提供一个唯一的ID
android:tag 属性提供一个唯一的字符串
* 创建方法:*
- 在布局文件中声明一个fragment组件,name指向3中创建的类对象
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.w2.test.MainActivity"
android:orientation="vertical">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick=