zoukankan      html  css  js  c++  java
  • 第七次作业3

    1.Fragment的简介:

    Fragment是Android3.0以后引入的新的api,为了适配大屏的平板。

    在普通手机开发的过程中,使用Fragment能实现一个界面的多次使用,能加快效率。Fragment可以被认为是Activity界面的一个布局,其依赖于Activity,但是拥有自己的活动事件与生命周期。可以通过替换Activity中的Fragment实现界面的优化处理。

    现在Android提供一下两种包,在一个项目中最好使用同一个包下的Fragment,否则会出现一些不兼容问题,例如V4包不支持属性动画,app包下的不支持逐帧动画等

    android.app.Fragment 兼容的最低版本是android:minSdkVersion=”11” 即3.0版。

    android.support.v4.app.Fragment 兼容的最低版本是android:minSdkVersion=”4” 即1.6版。

    2.Fragment的生命周期,依赖于Activity

    可以看到Fragment比Activity多了几个额外的生命周期回调方法:

    onAttach(Activity)

    当Fragment与Activity发生关联时调用。

    onCreateView(LayoutInflater, ViewGroup,Bundle)

    创建该Fragment的视图

    onActivityCreated(Bundle)

    当Activity的onCreate方法返回时调用

    onDestoryView()

    与onCreateView想对应,当该Fragment的视图被移除时调用

    onDetach()

    与onAttach相对应,当Fragment与Activity关联被取消时调用

    也就是Fragment的创建与删除过程都是先链接(Attach)到Avtivity,再创建视图(View)

    注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对于该方法的实现

    3.Fragment的三个常用类

    android.app.Fragment 主要用于定义Fragment

    android.app.FragmentManager 主要用于在Activity中操作Fragment

    android.app.FragmentTransaction 对Fragment进行增加删除等操作

    a.得到Fragment

    getFragmentManager() // v4中,getSupportFragmentManager

    b.使用FragmentTransaction 操作Fragment的基本用法

    transaction.add() 

    往Activity中添加一个Fragment

    transaction.remove()

    从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈,这个Fragment实例将会被销毁。

    transaction.replace()

    使用另一个Fragment替换当前的,实际上就是remove()然后add()的合体

    transaction.hide()

    隐藏当前的Fragment,仅仅是设为不可见,并不会销毁

    transaction.show()

    显示之前隐藏的Fragment

    detach()

    会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护。

    attach()

    重建view视图,附加到UI上并显示。

    transatcion.commit()//提交一个事务,若进行保存数据操作,一定要在Activity.onSaveInstance()

    上述,基本是操作Fragment的所有的方式了,在一个事务开启到提交可以进行多个的添加、移除、替换等操作

    4.Fragment的使用

    1.静态的使用

    步骤:

    创建fragment的xml

    自定义Fragment继承自Fragment,在其中绑定fragment的视图,写fragment自己的事件

    再Activity的xml中通过id引用该fragment

  • 相关阅读:
    Intel CPU编号详解
    matplotlib(二)——matplotlib控制坐标轴第一个刻度到原点距离
    matplotlib(一)——matplotlib横轴坐标密集字符覆盖
    博客园定制页面(五)——使用自定义JS脚本(公告栏显示时间)
    PyCharm(二)——PyCharm打开本地项目不显示项目文件
    nohup命令
    URL是如何解析的
    Python 得到主机字节序
    Python 得到ISP地址
    亚马逊s3上传大文件Python
  • 原文地址:https://www.cnblogs.com/zqxxx/p/11728735.html
Copyright © 2011-2022 走看看