zoukankan      html  css  js  c++  java
  • Fragment最基础的方法

    fragment 是一个控件,却拥有像activity一样的生命周期

       需要一个总的fragmentActivity来进行控制全部的fragment的使用,在这个activity的布局文件中要有一个framelayout的控件容器,来容纳fragment

       fragment 有个oncrateview来生成fragment所需的布局文件,用的是inflater.inflate(R.layout...,container,false);

       在fragmentactivity中用new 一个相应的fragment,然后获得fragmentmanager,然后用manager.beginTransaction()获得FragmentTransaction ,用transaction.replace(...,...),根据是否需要返回,来确定调用addToBackStack(String arg)方法

      其中replace和add方法的区别在:

    add 和 replace 影响的都只是界面,而控制回退的,是事务。

    add 是把一个fragment添加到一个容器 container 里。

    replace 是先remove掉相同id的所有fragment,然后在add当前的这个fragment。

    在大部分情况下,这两个的表现基本相同。因为,一般,咱们会使用一个FrameLayout来当容器,而每个Fragment被add 或者 replace 到这个FrameLayout的时候,都是显示在最上层的。所以你看到的界面都是一样的。但是, 使用add的情况下,这个FrameLayout其实有2层,多层肯定要比一层的来得浪费,所以还是推荐使用replace。 当然有时候还是需要使用add的。比如要实现轮播图的效果,每个轮播图都是一个独立的Fragment,而他的容器FrameLayout需要add多个Fragment,这样他就可以根据提供的逻辑进行轮播了。

    而至于返回键的时候,这个跟事务有关,跟使用add还是replace没有任何关系。

       fragment也有onresume等方法,也可以和fragment进行通信,详细见面向接口编程一篇

  • 相关阅读:
    手搓一个兔子问题(分享一个C语言问题,持续更新...)
    一个C语言萌新的学习之旅(持续更新中...)
    ...续上文(一个小萌新的C语言之旅)
    手搓一个C语言简单计算器。
    嘿,C语言(持续更新中...)
    一个博客萌新的博客之旅。。。。
    vue+uikit3+laravel快速建站
    mpvue开发博客园小程序
    C语言俄罗斯方块小游戏练习
    c语言贪吃蛇小游戏练习
  • 原文地址:https://www.cnblogs.com/lingxianxia/p/4307616.html
Copyright © 2011-2022 走看看