Android开发小白日记2 (20 Apr) 关于Fragment

本文介绍了Android 3.0之后引入的Fragment概念,解释了为何需要Fragment以适应不同屏幕尺寸,如平板和手机。通过实例展示了如何通过XML布局文件创建Fragment,以及动态添加Fragment的方法。此外,还讲解了Fragment之间的通信方式,通过获取Activity来操作另一Fragment的视图。
摘要由CSDN通过智能技术生成

很早的时候开发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的布局文件:

[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="match_parent"  
  3.     android:layout_height="match_parent"  
  4.     android:background="#00ff00" >  
  5.   
  6.     <TextView  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:text="This is fragment 1"  
  10.         android:textColor="#000000"  
  11.         android:textSize="25sp" />  
  12.   
  13. </LinearLayout>  

可以看到,这个布局文件非常简单,只有一个LinearLayout,里面加入了一个TextView。我们如法炮制再新建一个fragment2.xml :

[html]  view plain copy
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:layout_width="match_parent"  
  3.     android:layout_height="match_parent"  
  4.     android:background="#ffff00" >  
  5.   
  6.     <TextView  
  7.         android:layout_width="wrap_content"  
  8.         android:layout_height="wrap_content"  
  9.         android:text="This is fragment 2"  
  10.         android:textColor="#000000"  
  11.         android:textSize="25sp" 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值