模拟用户点击返回键,将指定的fragment从返回栈中弹出,该操作为异步的。前提是该fragment对象使用.beginTransaction().addToBackStack("right")添加了进返回栈
manager.popBackStack(); //Pop the top state off the back stack
(4).FragmentTransaction事务
事务主要包含一些操作的集合,比如增加移除替换,动画设置等等
/*
* 通过manager开启一个事务,该事务包含一些操作的集合,通事务可以 add(), remove(), replace()
* 完成对Fragment的操作,并使用commit()提交
*/
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.right, new RightFrag(), "right");
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);//设置动画
transaction.addToBackStack("right"); // 将该fragment加入返回堆
// 提交事务
transaction.commit();
(5).Fragment状态管理
/*
* 管理Fragment的状态
* 如果在一个主activityViewGroup中添加一个fragment,
* 如果手机屏幕旋转了,当前activity被销毁重建,fragment也被activityManager创建
* 故在onCreate中,需要判断一下
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = getFragmentManager();
if (manager.findFragmentByTag("right") == null) {
// if(savedInstanceState == null)也可判断该fragment是否已经加载
manager.beginTransaction()
.replace(R.id.right, new RightFrag(), "right")
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)// 设置动画
.addToBackStack("right") // 将该fragment加入返回堆
// 提交事务
.commit();
}
}
4.Fragment间信息交互










