美文网首页Android开发经验谈程序员Android开发
[03]——认识与简单使用Fragment(碎片)

[03]——认识与简单使用Fragment(碎片)

作者: junerver | 来源:发表于2016-07-10 00:28 被阅读454次

    为什么要使用碎片Fragment

    碎片的出现是为了能使一套布局适应在不同大小尺寸的Android设备上,我们可以将Fragment理解为Activity上的一个个的碎片组成部分。

    Fragment拥有自己的生命周期,并且可以接收、处理用户的事件。而且我们还可以在程序运行时动态的添加、替换和移除某个Fragment。

    创建与使用Fragment

    首先需要在一个activity中设置一个布局作为主容器

    在Activity中设置容器

    在activity中使用FragmentManager来管理fragment,在管理器中使用beginTransaction()来开启事务,通过add()来添加具体事务(添加fragment),通过commit()来提交事务。

    将Activity作为容器,载入一个Fragment

    在按钮事件中,使用FragmentManager中的replace()方法可以在容器中替换碎片

    替换容器中的碎片Fragment

    这种情况下,我们的Fragment与Activity共用返回栈,在fragment中返回将直接退出应用,需要使用使用fragment模拟activity的返回栈,需要用到FragmentManager的方法addToBackStack(null),这样在被激活的另一个Fragment中按下返回将会回到上一个这个Fragement

    将Fragment加入返回栈

    有时我们需要使用后退按钮来退回到上一个Fragment,可以通过FragmentManagerpopBackStack()方法手动返回

    手动返回


    Fragment的生命周期

    Fragemnt的生命周期

    如图所示是Fragment的生命周期,其中有很多函数,但是我们常用的有三个

    onCreate()、onCreateView()、onPause()

    演示如下(转自此处):

    场景演示 : 切换到该Fragment

    11-29 14:26:35.095: D/AppListFragment(7649): onAttach

    11-29 14:26:35.095: D/AppListFragment(7649): onCreate

    11-29 14:26:35.095: D/AppListFragment(7649): onCreateView

    11-29 14:26:35.100: D/AppListFragment(7649): onActivityCreated

    11-29 14:26:35.120: D/AppListFragment(7649): onStart

    11-29 14:26:35.120: D/AppListFragment(7649): onResume

    屏幕灭掉:

    11-29 14:27:35.185: D/AppListFragment(7649): onPause

    11-29 14:27:35.205: D/AppListFragment(7649): onSaveInstanceState

    11-29 14:27:35.205: D/AppListFragment(7649): onStop

    屏幕解锁

    11-29 14:33:13.240: D/AppListFragment(7649): onStart

    11-29 14:33:13.275: D/AppListFragment(7649): onResume

    切换到其他Fragment:

    11-29 14:33:33.655: D/AppListFragment(7649): onPause

    11-29 14:33:33.655: D/AppListFragment(7649): onStop

    11-29 14:33:33.660: D/AppListFragment(7649): onDestroyView

    切换回本身的Fragment:

    11-29 14:33:55.820: D/AppListFragment(7649): onCreateView

    11-29 14:33:55.825: D/AppListFragment(7649): onActivityCreated

    11-29 14:33:55.825: D/AppListFragment(7649): onStart

    11-29 14:33:55.825: D/AppListFragment(7649): onResume

    回到桌面

    11-29 14:34:26.590: D/AppListFragment(7649): onPause

    11-29 14:34:26.880: D/AppListFragment(7649): onSaveInstanceState

    11-29 14:34:26.880: D/AppListFragment(7649): onStop

    回到应用

    11-29 14:36:51.940: D/AppListFragment(7649): onStart

    11-29 14:36:51.940: D/AppListFragment(7649): onResume

    退出应用

    11-29 14:37:03.020: D/AppListFragment(7649): onPause

    11-29 14:37:03.155: D/AppListFragment(7649): onStop

    11-29 14:37:03.155: D/AppListFragment(7649): onDestroyView

    11-29 14:37:03.165: D/AppListFragment(7649): onDestroy

    11-29 14:37:03.165: D/AppListFragment(7649): onDetach

    相关文章

      网友评论

        本文标题:[03]——认识与简单使用Fragment(碎片)

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