Fragment Usage

使用Fragment实现代码与布局的复用

源码是 Androidbase / Fragment / FragmentExample / 中的DynamicFragment相关的代码。

实现的效果:在手机中处理title与content显示在不同的界面,在平板中左边显示title,右边显示content。
查看效果图

实现的思路: 在手机中加载的布局和平板加载的布局肯定不同,要分别定义不同的布局。在手机中点击title,跳转到另一界面显示content,可以使用两个fragment分别让activity关联。在平板中不涉及界面的跳转,可以在布局文件中使用**<fragment>**标签来定义。

实现的步骤:

  1. 定义不同的布局,在本例中定义了两个布局文件activity_dynamic_fragment,一个是在layout中定义(用于手机使用),一个是layout-large中定义(用于平板)。
  2. 定义title的fragment和content的fragment
  3. 在Activity的onCreate()方法中content相关的view是否存在,不存在就是手机设备要把title的fragment加到activity中。
  4. title点击处理使用了回调的方式,手机的处理方式是添加content的fragment,而平板的处理方式是获取content的fragment来更新。
……

Fragment

什么是Fragment?

Fragment不是Activity,但是需要内嵌到Activtiy中,Fragment不是容器(viewGroup或者其子类),通常Fragment创建ViewGroup.
Fragment代表的是一种行为或者Activity的用户界面的一部分。

为什么要使用Fragment呢?

Android是在3.0时引入的Fragment,为了更好的支持大屏幕设备(平板)。使用Fragment来封装UI和Java代码,提高了复用性。

什么时候使用Fragment呢?

  • 逻辑共享:不同设备和屏幕尺寸之间共享UI和逻辑,通常用于平板电脑
  • 回退导航:把fragment添加到堆栈中,当回退时,就会出栈,这种实现方式避免了activity的重建
  • 整体滑动的效果:与ViewPager一起使用实现整体滑动的效果
……

Activity

创建Activity

什么是Android中的Activity?

一个activity是提供一个界面,用于与用户交互(打电话,发邮件等)的应用组件。

如何创建一个Activity呢?

  • 在layout中定义个布局文件
  • 定义一个Activity(或者已存在的Activity子类)的子类,并实现相关的方法.
  • 在AndroidManifest.xml中配置Activity

定义一个Activity子类时,要实现哪些方法呢

  • onCreate(): 你必须实现这个方法,系统会在创建activity时,调用此方法,在这个方法中初始化的activity重要部分,尤其是调用setContentView()使用资源资源来设置activity的界面。
  • onPause(): 当用户将要离开activity时,系统调用的第一方法就是此方法,通常保存在当前会话中的变化的信息。
  • 更多的activity信息请看管理生命周期
……