很早的时候开发android用的是2.2的SDK,当时界面就一个activity,可是前些日子重试android开发的时候,发现每次新建一个activity 在新建一个layout的同时,还会有一个非常相似地fragment layout,后来查了下资料,总算明白了在3.0之后,android的sdk就加入了fragment,用户单屏显示更多的布局。
下面的部分内容转载自:http://blog.csdn.net/guolin_blog/article/details/8881711
为什么要引入fragment?
我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。
但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。因此,我们今天的主角Fragment登场了。
Fragment 实例:
1.平板应用
Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题。Fragment 2包含了TextView和ImageView,来显示书的详细内容和图片。
如果现在程序运行竖屏模式的平板或手机上,Fragment 1可能嵌入在一个Activity中,而Fragment 2可能嵌入在另一个Activity中,如下图所示:
而如果现在程序运行在横屏模式的平板上,两个Fragment就可以嵌入在同一个Activity中了,如下图所示:
由此可以看出,使用Fragment可以让我们更加充分地利用平板的屏幕空间,下面我们一起来探究下如何使用Fragment。
2. 横竖屏切换
我能想到的另外一个案例就是iOS自带的计算器,当是竖屏使用的时候,就是一个只有简易计算功能的calculator,但是当通过重力感应切换成横屏的时候,界面就显示成为科学计算器了。这个也许和fragment 有异曲同工之妙吧。
3. QQ、微博、微信界面下方的标签栏
这个案例更容易想到了,以前似乎是用activity group实现的,现在用fragment 应该可以轻松实现。
通过XML布局文件建立Fragment
新建一个项目叫做Fragments,然后在layout文件夹下新建一个名为fragment1.xml的布局文件:
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#00ff00" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="This is fragment 1"
- android:textColor="#000000"
- android:textSize="25sp" />
- </LinearLayout>
可以看到,这个布局文件非常简单,只有一个LinearLayout,里面加入了一个TextView。我们如法炮制再新建一个fragment2.xml :
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="#ffff00" >
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="This is fragment 2"
- android:textColor="#000000"
- android:textSize="25sp"