码迷,mamicode.com
首页 > 移动开发 > 详细

android Fragment用法

时间:2017-01-23 17:30:52      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:and   rem   rdf   固定   获取   定义   原子性   index   异常   

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, fragment);


 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();



 

android Fragment用法

标签:and   rem   rdf   固定   获取   定义   原子性   index   异常   

原文地址:http://www.cnblogs.com/longzhongren/p/6344361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!