繁体   English   中英

Android:将两个或多个片段添加到相同的堆栈状态

[英]Android: add two or more fragments to the same backstack state

我有一个RelativeLayout容器的主要活动,在其中我使用FragmentManager加载不同的片段 假设我通过两个事务加载fragment1和fragment2。 如果按下后退按钮,我想返回到fragment1和fragment2都未加载的状态。 这可能吗? 我试图在addToBackStack()方法中使用相同的名称:

mFragmentManager.beginTransaction().replace(R.id.activity_main, fragment1).addToBackStack("SameState").commit();

mFragmentManager.beginTransaction().add(R.id.activity_main, fragment2).addToBackStack("SameState").commit();

但这不起作用。 如果我按下后退按钮,fragment2首先消失,然后再次按下fragment1也消失。 有什么建议吗?

尝试这个:

mFragmentManager.beginTransaction()
 .replace(R.id.activity_main,fragment1)
 .addToBackStack(null)
 .commit();

getSupportFragmentManager().popBackStack(); // Pop the first transaction
mFragmentManager.beginTransaction()
 .replace(R.id.activity_main,fragment2)
 .addToBackStack(null)
 .commit();

此时,当您按下“后退”按钮时,它将仅还原上一个事务(替换片段2)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM