zoukankan      html  css  js  c++  java
  • Fragment 详解

    Fragment必须被嵌入Activity中使用,因此虽然Fragment也拥有自己的生命周期,但是会受它所在的生命周期的控制,例如,当Activity暂停时,其当中的所有的Fragment都会被暂停,Activity销毁时,其中所有的Fragment也会被销毁。只有当Activity处于活动状态时,程序员才可以通过独立的方法操作Fragment。

    特征:

        1.Fragment总是作为Activity界面的组成部分。Fragment可通过调用getActiavity()方法获得它所在的Activity。Activity可以通过FragmentManager的findFragmentById()或findFragmentByTag()方法来获取Fragment;

        2.Activity运行当中,可以调用FragmentManager的add() emove() eplace()动态的就那个性添加、删除、或者替换Fragment;

        3.一个Activity可以同时组合多个Fragment:反过来,一个Fragment也可以被多个Activity调用。

        4.Fragment可以响应自己的输入事件,并拥有自己的生命周期,但是被其所属的Activity生命周期控制。

    创建Fragment:(与Activity类似)

    只要将原来写在Activity中的回调方法写在Fragment当中即可。

    Fragment与Activity通信

      将Fragment添加到Activity中有两种方式:

        》在布局文件中使用<fragment .../>元素添加Fragment,<fragment.../>元素的android:name属性指定Fragment的实现类。

        》在java代码中通过FragmentTransaction对象的add方法来添加Fragment。

        Activity的getFragmentManager();方法可返回FragmentManager,FragmentManager的beginTranscation()方法可开启并返回FragmentTranscation对象。

        》Activity向Fragment传递数据:在Activity中创建Bundle数据包,并调用Fragment.setArgument(Bundle bundle)方法,可将bundle传递给Fragment;

        》Fragment向Activity传递数据:在Fragment中定义一个内部回调接口,再让包含该Fragment的Activity实现该回调接口,然后在Fragment中进行回调。

    Fragment管理与Fragment事务

    Activity管理Fragment主要依靠FragmentManager。

        》使用findFragmentById或findFragmnentByTag来获取指定的Fragment。

        》调用popBackStack()方法将Fragment从后台弹出(模拟Back按键)

        》调用addOnBackStackCHangeListener()用于监听后台栈的变化。

        》可以调用FragmentManager的add() emove() eplace()动态的就那个性添加、

    岁月本长而忙者自促;天地本宽而卑者自隘;风花雪月本闲,而劳忧者自冗;天行健,君子以自强不息;地势坤,君子以厚德载物;宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒.不妄取,不妄予,不妄想,不妄求,与人方便,随遇而安
  • 相关阅读:
    关于讯飞语音SDK开发学习
    关于讯飞语音SDK开发学习
    关于讯飞语音SDK开发学习
    Atitti cto的日常流程与职责attilax总结
    Atitti cto的日常流程与职责attilax总结
    Atitti cto的日常流程与职责attilax总结
    MySQL 大表优化方案,收藏了细看!
    Jquery 返回json数据在IE浏览器中提示下载的问题
    多级菜单联动
    解决IE下返回json数据提示文件保存到问题
  • 原文地址:https://www.cnblogs.com/vvning/p/9412771.html
Copyright © 2011-2022 走看看