zoukankan      html  css  js  c++  java
  • android Fragment用法

    Fragment常用的三个类:
    android.app.Fragment 主要用于定义Fragment
    android.app.FragmentManager 主要用于在Activity中操作Fragment
    android.app.FragmentTransaction 保证一些列Fragment操作的原子性

    获取FragmentManage的方式:  

      getFragmentManager()
      getSupportFragmentManager //v4中FragmentActivity

    主要的操作都是FragmentTransaction的方法

      FragmentTransaction transaction = fm.benginTransatcion();//开启一个事务

      transaction.add() //往Activity中添加一个Fragment

      transaction.remove() //从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁。

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

      transaction.hide() //当你的fragment数量固定很少时隐藏当前的Fragment,仅仅是设为不可见,并不会销毁,多的时候可能出现OOM异常,

      transaction.show()//显示之前隐藏的Fragment

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

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

      transatcion.commit()//提交一个事务

      transatcion.commitAllowingStateLoss() //提交一个事务,和commit()不同的是,这个允许状态值丢失

    示例:

     FragmentManager fragmentManager = getSupportFragmentManager();
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.add(R.id.common_index_activity_rl_fragmentlayout, new UserFragment());


     rewardFragment = (RewardFragment) fragmentManager.findFragmentByTag("reward");
    if (rewardFragment == null) {
    rewardFragment = new RewardFragment();
    fragmentTransaction.add(R.id.common_index_activity_ll_reward, rewardFragment, "reward"); //第三个参数设置标签
    fragmentTransaction.hide(rewardFragment);
    }
     fragmentTransaction.commitAllowingStateLoss();



     程序猿必读

  • 相关阅读:
    centos set up samba
    iptables基础及samba配置举例
    CentOS 7.x samba 服务器安装
    (总结)RHEL/CentOS 7.x的几点新改变
    Linux Samba文件共享服务配置
    光纤交换机端口故障排查
    FAQ-SNS交换机的端口状态及排查流程说明
    Oracle 降低高水位线的方法
    Java异常处理机制
    noVNC连接多台远程主机
  • 原文地址:https://www.cnblogs.com/longzhongren/p/6344361.html
Copyright © 2011-2022 走看看