首页 > 代码库 > 新手关于FragmentTransaction(回退栈)容易误解的地方

新手关于FragmentTransaction(回退栈)容易误解的地方

说来惭愧,在开始的时候,我就进入了所谓的误区,直到今天才明白。


那么,所谓的误区是什么?


你认为,FragmentTransaction中储存的是什么?


一开始,我以为里面存放的,是上一个Fragment。


现在才知道里面放着的,其实,是一系列对框架的操作。


为什么?


可以根据添加到回退栈的方法进行回推。


我们通常都是通过以下的方式进行存如回退栈:


FragmentManager manager = getFragmentManager();
				
				FragmentTransaction transaction = manager.beginTransaction();
				
				transaction.add(R.id.fragment_container, new Fragment2());
				
				transaction.addToBackStack(null);
				
				transaction.commit();

addToBackStack()方法的调用都是在transaction添加动作之后commit()之前。

如果存入的一个框架,那么为什么不可以在添加动作之前就进行移入栈呢?

因此,存入在栈中的其实是一系列对框架的操作。


-----------------------------------------------------------------------------------------------不喜勿喷,欢迎讨论

新手关于FragmentTransaction(回退栈)容易误解的地方