我有一个Activity A,它调用fragment Bf,fragment Bf又调用fragment Cf。我希望在Cf被调用时,Bf被放到backstack中,这样用户就可以导航回它。但是,如果Cf中的某个特定按钮被按下,我希望Bf从backstack中被移除。这可能吗?
我看到有一个popBackStack()函数。但是,我对它的工作方式有点困惑。使用这个函数安全吗?是否有可能在backstack上的Bf之后插入来自不同应用程序的Activity?
另外,有没有办法改变backstack上片段的savedInstanceState?
我只是不知道如何使用模拟器在backstack上进行健壮的测试。
5条答案
按热度按时间9nvpjoqh1#
你可以按名字弹出片段。当把片段添加到后台堆栈时,只需要给予它们一个名字。
然后在Fragment_C中,使用名称ie..
fragB
弹出后栈,并包含POP_BACK_STACK_INCLUSIVE
7lrncoxx2#
从BackStack弹出片段的三种方法
只需添加以下任意一行:
1)的
2)的
3)的
这些都是从Backstack弹出片段的简单方法
rbl8hiat3#
"你可以试试这样"
jgwigjjp4#
第一次替换片段container_view时,我们将名称添加为“Later Transaction”
然后在按下后退按钮时,使用稍后的事务名称弹出后退堆栈
lnxxn5zx5#
下面是使用
BackStackEntry
弹出最后一个片段的示例