类似Android系统为Activity维护一个任务栈,我们也可以通过Activity维护一个回退栈来保存每次Fragment事务发生的变化。如果你将Fragment任务添加到回退栈,当用户点击后退按钮时,将看到上一次的保存的Fragment。一旦Fragment完全从后退栈中弹出,用户再次点击后退键,则退出当前Activity。
先看一下这样一个效果图:
image要实现这样的效果,在加入fragment的时候,同时调用addToBackStack把fragment加入到回退栈即可,以第二个fragment为例,在第一个fragment的点击响应事件中加入以下代码(第一个加入的fragment并不需要加入回退栈,因为它是直接加在activity上面的,点击返回调用activity的返回代码即可):
FragmentTwo fTwo = new FragmentTwo();
FragmentManager fm = getFragmentManager();
FragmentTransaction tx = fm.beginTransaction();
tx.replace(R.id.id_content, fTwo, "TWO");
tx.addToBackStack(null);
tx.commit();
这样第三个Fragment replace 第二个fragment的时候,第二个fragment会调用onDestoryView方法,但不会onDestory,返回时,直接onCreateView,不再onCreate
手机赚钱怎么赚,给大家推荐一个手机赚钱APP汇总平台:手指乐(http://www.szhile.com?from=js),辛苦搬砖之余用闲余时间动动手指,就可以日赚数百元
网友评论