Android Fragment 的基本使用

转载请注明出处:    https://mp.csdn.net/postedit/80368582

记得第一次接触Fragment,觉得好牛叉的组件,可以做许多Activity可以做的事,辅助Activity让功能可以做得更加强大;一次编写,可以多个地方可以使用,解放了Activity。在这里,本篇文章主要是总结fragment的基本使用以及使用过程中容易出现的错误;

  Android Fragment 的基本使用说了这么多,那么到底什么是Fragment呢?

1、什么是Fragment?

    简单来说,Fragment其实可以理解为一个具有自己生命周期的控件,只不过这个控件又有点特殊,它有自己的处理输入事件的能力,有自己的生命周期,又必须依赖于Activity,能互相通信和托管 。

  说白了:Fragment也是用来显示的;就是可以把“按钮(Button)”、“文本(TextView)”等组件放在上面,再通过“onCreateView”方法返回的“view”,在“Activity”中显示出来。但是,Fragment的显示依赖于“Activity”,需要通过“Activity”将其展示出来,它本身不具有显示的功能。

     Fragment,也简称为:碎片,是Android 3.0(API 11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 1.6。

    过去support-v4库是一个jar包,24.2.0版本开始,将support-v4库模块化为多个jar包,包含:support-fragment, support-ui, support-media-compat等,这么做是为了减少APK包大小,你需要用哪个模块就引入哪个模块。

    因为support库是不断更新的,因此建议使用support库中的android.support.v4.app.Fragment,而不要用系统自带的android.app.Fragment。而如果要使用support库的Fragment,Activity必须要继承FragmentActivity(AppCompatActivity是FragmentActivity的子类)。


2、特点

  1. Fragment 是依赖于 Activity 的,不能独立存在的。
  2. 一个 Activity 里可以有多个 Fragment。
  3. 一个 Fragment 可以被多个 Activity 重用。
  4. Fragment 有自己的生命周期,并能接收输入事件。
  5. 我们能在 Activity 运行时,动态地添加或删除 Fragment。

3、Fragment的优势有以下几点:

  • 模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。
  • 可重用(Reusability):多个Activity可以重用一个Fragment。
  • 可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。

好啦!说了这么多;我们的最终目的不就是学会用怎么使用它嘛;接下来,就是实现怎么使用 Fragment


实现步骤:

        1、创建一个类(Fragment1) 继承  Fragment(注意:继承的是“v4”底下的包);并重写里面的“onCreateView”方法

          再通过该方法中的参数适配器“inflater”,找到要显示的布局文件,并返回“View”。

Android Fragment 的基本使用

     

   2、创建 Fragement 布局文件

      这里创建的布局文件就是 Fragment 所要显示的内容;这里的布局很简单就是单纯的一个(TextView);我们这里是引入 Fragment的使用,所以使用的布局相对简单些 

Android Fragment 的基本使用


  好了!现在 Fragment 创建了、要显示的布局内容也创建好了。现在莫不过于就是把它显示出来

Fragment 的显示方式主要有两种,分别是:“静态添加”   和   “动态添加”

  • 静态添加:通过xml的方式添加,缺点是一旦添加就不能在运行时删除。
  • 动态添加:运行时添加,这种方式比较灵活,因此建议使用这种方式。

   静态方式:

Android Fragment 的基本使用

   

   动态添加

Android Fragment 的基本使用

注意:这里的获取(fragmentManager)是通过方法“getSupportFragmentManager()”;导入的包是(v4)底下的包;这里是根据我们上面所创建的Fragment 所继承的类型,所匹配的;因为上面所创建的Fragment是继承于“Fragment(v4)”底下的包;所以这里也是一样。

问题:获取的不是 “v4” 包底下的 “FragementManager” 对象,将报以下的错误

Android Fragment 的基本使用


Activity的布局

Android Fragment 的基本使用

运行效果:

Android Fragment 的基本使用


到此,Fragment的基本使用以及所显示的方式就介绍到这里。

希望以上的文章对大家有所帮助。

最后再次,感谢您看完这篇文章。