FragmentManager:用来管理Fragment的,利用Activity的getFragmentManager()取得它的实例.
FragmentManager可以做如下一些事情:
1、使用findFragmentById() (用于在activity layout中提供一个UI的fragment)或findFragmentByTag()(适用于有或没有UI的fragment)获取activity中存在的fragment
2、将fragment从后台堆栈中弹出, 使用 popBackStack()
3、使用addOnBackStackChangeListener()注册一个监听后台堆栈变化的listener.
FragmentTransaction:是对Fragment进行添加,替换,移除等操作的。
在使用add(),replace(),remove()时可以动态的给每一个Fragment添加一个标签,下次方便FragmentManager通过tag标签进行查找。最后记得ft.commit();
当执行一个移除fragment的事务时, 如果没有调用 addToBackStack(), 那么当事务提交后, 那个fragment会被销毁,并且用户不能导航回到它. 有鉴于此, 当移除一个fragment时,如果调用了 addToBackStack(), 那么fragment会被停止, 如果用户导航回来,它将会被恢复.我认为是重要的,
以上的话,可以理解,remove后,加到堆栈后。按返回还是可以返回到之前的fragment。
FragmentManager myFragmentManager;
FragmentTransaction myFragmentTransaction = myFragmentManager.beginTransaction();
Fragment myFragment = new Fragment ();
myFragmentTransaction.replace(R.id.newFrameLayout, newFragment);
myFragmentTransaction.commit();
fragment的显示和隐藏可以用FragmentTransaction的show 或是hide来实现,
ft.show(fragment);
ft.hide(fragment);