美文网首页Android知识
第一行代码(四)

第一行代码(四)

作者: radish520like | 来源:发表于2018-01-09 22:59 被阅读0次

    第四章内容主讲Fragment的用法

    一、Fragment的简单用法(静态添加):

      新建一个类,继承自Fragment,注意,这里可能会有两个不同包下的Fragment供你选择,一个是系统内置的android.app.Fragment,一个是support-v4库中的android.support.v4.app.Fragment,我们强烈建议使用support-v4库中的Fragment,因为它可以让Fragment在所有Android系统版本中保持功能一致性,比如说在Fragment中嵌套使用Fragment,这个功能是在Android4.2系统中才开始支持的。


    image.png

      使用<fragment>标签在布局中添加碎片,需要通过android:name属性来显式的指名要添加的碎片类名,注意一定要将类的包名也加上。

    二、Fragment的简单用法(动态添加):

      在布局中定义<FrameLayout>,id为left_layout,然后通过代码向FrameLayout中添加内容,从而实现动态添加。


    image.png

    三、Fragment中模拟返回栈:

    image.png

    四、Fragment之间的通信:

      Activity调用Fragment中的方法,我们可以在Activity里面调用如下方法获取Fragment的实例对象,然后通过对象调用对应的方法。


    image.png

      Fragment调用Activity中的方法,我们可以通过getActivity()方法获取和当前Fragment相关联的Activity实例
      Fragment和Fragment之间进行通信,从第一个Fragment得到相关联的Activity,然后根据这个Activity获取另一个Fragment的实例。

    五、Fragment的生命周期:

      Fragment一共有十一个生命周期回调方法:onAttach()-->onCreate()-->onCreateView()-->onActivityCreated()-->onStart()-->onResume()-->onPuase()-->onStop()-->onDestroyView()-->onDestroy()-->onDetach()

    1.onAttach():当Fragment和Activity建立关联的时候调用
    2.onCreateView():Fragment加载布局时调用
    3.onActivityCreated():确保和Fragment关联的Activity一定创建完毕的时候调用
    4.onDestroyView():当Fragment中的视图被移除的时候调用
    5.onDetach():当Fragment和Activity解除关联的时候调用

    注意,当fragment1替换了fragment2,此时fragment2进入了停止状态,执行了onPause()、onStop()和onDestroyView()方法,如果在替换的时候没有调用addToBackStack()方法,此时fragment2就会进入销毁状态,onDestroy()和onDetach()方法就会得到执行。此时按下返回键,fragment2执行了onActivityCreated()、onStart()和onResume()方法,如果使用了addToBackStack()方法,onCreate()和onCreateView()方法不会执行。另外,在Fragment中也可以通过onSaveInstanceState()方法保存数据,onCreate()、onCreateView()和onActivityCreated()这3个方法中都可以重新得到。

    六、使用限定符加载不同布局:

      一般,我们都把布局卸载res->layout文件夹下面,如果我们在res文件夹下面新建一个layout-large文件夹,这个large就是一个限定符,large设备就会自动加载layout-large文件夹下的布局(双页布局),而小屏幕的设备还是会加载layout文件夹下的布局
      使用最小宽度限定符,最小宽度限定符允许我们对屏幕的宽度指定一个最小值(以dp为单位),以这个最小值为临界点,屏幕宽度大于这个值的设备就加载一个布局,屏幕宽度小于这个值的设备就加载另一个布局。比如我们在res目录下新建layout-sw600dp文件夹,当程序运行在屏幕宽度大于600dp的设备上时,会加载layout-sw600dp文件夹下的布局,当程序运行在屏幕宽度小于600dp的设备上时,会加载默认的layout文件夹中的布局

    小技巧:

    image.png

    下一篇文章 https://www.jianshu.com/p/d429a95e611b

    相关文章

      网友评论

        本文标题:第一行代码(四)

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