首先,我使用replace方法将片段添加到堆栈中,然后按返回键时,堆栈中的片段将再次调用onCreateView,我在api演示中也发现了这一行为,所以我认为它不是错误,但我想达到类似活动行为的效果
按返回键,上一个活动将不会调用onCreate方法.
后来我发现fragmentManager.add()可以实现我的想法,但是出现另一个问题,当添加第二个片段时,前一个片段仍然可见.
有人可以帮我吗?
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction2 = manager.beginTransaction();
transaction2.add(R.id.fl, f2);
transaction2.addToBackStack("Fragment2");
transaction2.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
transaction2.commit();
解决方法:
尝试使用“替换”而不是“添加”
部分代码
fragmenttransaction.replace(R.id.realtabcontent,Fragment);
fragmenttransaction.commit();