碎片(Fragment)是一种可以嵌入在活动中的UI片段,可以理解成一个迷你活动。

碎片的简单用法

在一个活动中添加两个碎片,两个碎片平分活动空间

1.新建一个左侧碎片布局left_fragment.xml,这个布局只放置了一个按钮,并让他水平对齐。


android Fragment 的简单应用_显式






2.然后再建一个右侧碎片布局right_fragment.xml


android Fragment 的简单应用_android_02


3.新建一个LeftFragment类,让他继承自Fragment.

这里使用suppore-v4包。可以让所有的android 系统版本保持功能一致性,如果说你使用的是系统内置低的Fragment,那么4.2之前的设备运行就会奔溃,虽然说现在基本找不到4.2之前的设备。。。

android Fragment 的简单应用_碎片_03

上面这里重写了Fragment的onCreateView()方法,然后在这个方法中通过LayoutInflater的inflate()方法将刚才定义的left_fragment布局动态加载进来。



4.接下来再重建一个RightFragment类,功能一样。


android Fragment 的简单应用_点击事件_04


5.然后修改activity_main.xml中的代码

这里使用<fragment>标签在布局中添加碎片。注意这里还需要显式的指明要添加的碎片类名,一定也要将类的包名带上。


android Fragment 的简单应用_点击事件_05


效果如图,两个碎片平分了活动布局 

android Fragment 的简单应用_android_06


接下来,在上面的基础上,学习动态添加碎片

碎片的强大之处就在于,可以在程序运行的时候,动态的添加到活动中,根据具体的情况来动态的添加碎片。


1.新建一个another_right_fragment.xml,这个代码和上面的right_fragment.xml代码基本相同,只是将背景色改成了黄色,并将显示的文字改了改。



android Fragment 的简单应用_碎片_07


2.然后新建AnotherRightFragment作为另一个右侧碎片。在onCreateView()方法中加载了刚刚创建的another_right_fagment布局,这样就创建好了另一个碎片。

android Fragment 的简单应用_android_08


3.修改activity_main.xml

可以看到将右侧碎片替换成了一个FrameLayout中。


android Fragment 的简单应用_xml_09



FrameLayout布局是安卓最简单的一个布局,它所有的控件都会被摆放在左上角。

如图示例


android Fragment 的简单应用_android_10



4.接下来修改MainActivity中的代码。


首先,给左侧碎片中的按钮注册了一个点击事件,然后调用replaceFragment()方法,动态的添加RightFragment这个碎片,当点击左侧碎片时,又会调用replaceFragment()方法将右侧碎片替换成AnotherRightFragment。

android Fragment 的简单应用_碎片_11


效果如下


android Fragment 的简单应用_碎片_12