美文网首页
Fragment碎片

Fragment碎片

作者: 思维线 | 来源:发表于2016-12-29 19:42 被阅读0次

        为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似于Activity,可以像Activity一样包含布局。Fragment通常是嵌套在Activity中使用的,现在想象这种场景:有两个Fragment,Fragment 1包含了一个ListView,每行显示一本书的标题。Fragment 2包含了TextView和ImageView,来显示书的详细内容和图片。

Fragment特点:

        Fragment是Android3.0后引入的一个新的API,他出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段!想想,如果一个很大的界面,我们 就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来也很麻烦!

          而使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!从而可以更加方便的在 运行过程中动态地更新Activity的用户界面!

            另外Fragment并不能单独使用,他需要嵌套在Activity 中使用,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响,比如Activity 被destory销毁了,他也会跟着销毁!

Fragment使用:

           首先需要注意,Fragment是在3.0版本引入的,如果你使用的是3.0之前的系统,需要先导入android-support-v4的jar包才能使用Fragment功能。

加载方式有两种

      1、动态加载:

            动态添加Fragment主要分为4步:

              1、获取到FragmentManager,在Activity中可以直接通过getFragmentManager得到。

              2、开启一个事务,通过调用beginTransaction方法开启。

              3、向容器内加入Fragment,一般使用replace方法实现,需要传入容器的id和Fragment的实例。

            4、提交事务,调用commit方法提交。

          图解:

        FragmentManager:

              要管理activity中的fragments,你就需要使用FragmentManager。

               通过getFragmentManager()或getSupportFragmentManager()获得

          例:fm = getSupportFragmentManager();

                     fa = new Fragment_A();

                     FragmentTransaction ft = fm.beginTransaction();

                           ft.add(R.id.rl, fa);

                           ft.commit();

          FragmentTransaction一般用来对当前的Fragment进行管理,常用的针对Fragment的方法有:

                1、将一个fragment实例添加到Activity的最层、add(int containerViewId, Fragment fragment);

                例:

 

             2、将一个fragment实例添加到Activity的最上层add(int containerViewId, Fragment fragment);

            3、将一个fragment实例从Activity的fragment队列中删除

            4、remove(Fragment fragment);

            5、替换containerViewId中的fragment实例,注意,它首先把containerViewId中所有fragment删除,然后再add进去当前的fragment

            6、replace(int containerViewId, Fragment fragment);

             例:

              hide()、show()public FragmentTransaction hide(Fragment fragment);//将指定的fragment隐藏不显示public FragmentTransaction show(Fragment fragment);//将以前hide()过的fragment显示出来

                例:

    2、静态加载:

相关文章

  • Fragment、Fragment的进阶

    一、Fragment简介 Fragment,英文碎片的意思,早期应用在平板设计中,Fragment是Android...

  • android之Fragment介绍

    Fragment Fragment:是Android3.0开始新增的概念,意为碎片。Fragment是依赖于Act...

  • android-Fragment的简单加载及更换

    Fragment的简单加载及更换 Fragment是什么? Fragment:碎片,依附于activity。一个a...

  • 第一行代码读书笔记 4 -- 探究碎片

    本篇文章主要介绍以下几个知识点:碎片 fragment 的用法;碎片 fragment 的生命周期;动态加载布局的...

  • 碎片fragment

    代码为了复用,多写在fragment里,以备需求到处改变位置,比如首页的fragment,希望从单独入口进入。所需...

  • Fragment碎片

    为了让界面可以在平板上更好地展示,Android在3.0版本引入了Fragment(碎片)功能,它非常类似...

  • Fragment碎片

    Android Fragment的使用(1) 可以分为下面的几部分: 使用支持库 创建一个Fragment 创建一...

  • Fragment碎片

    Fragment的继承关系 Fragment的实现方式 创建一个类,继承Fragment 重写父类的方法onCre...

  • 碎片Fragment

    安卓自3.0开始引入Fragment的概念,主要是为了能在不同分辩率屏幕上进行更为动态和灵活的UI设计,让程序更加...

  • Fragment详细解析

    Android Fragment 使用解析 标签: Android 1.基本概念 Fragment,简称碎片,是A...

网友评论

      本文标题:Fragment碎片

      本文链接:https://www.haomeiwen.com/subject/kbbrpttx.html