首页 > 解决方案 > 分片回栈

问题描述

我有 3 个片段,例如片段 1、片段 2、片段 3

这些都是使用替换事务打开的,并且在每个片段的 OnViewCreated 中实现了 api。

现在,当我从第二个片段移动到第三个片段时,应该删除第二个片段并且堆栈中应该只有第一个片段。

出现的问题是,当我从第 2 个移到第 3 个时,应该调用第 3 个的 api,它工作正常,但与此同时,第 1 个片段的 api 也被调用。

我不希望在调用第 3 个片段时调用第一个片段。

标签: androidandroid-studioandroid-fragmentskotlinback-stack

解决方案


抱歉,除非您使用 viewPager 或 Tabs,否则您的第 3 个片段不会调用第 1 个片段的功能。如果您不希望第二个片段在堆栈中,只需从附加片段中删除 .addToBackStack() 函数。

getSupportFragmentManager().beginTransaction()
.replace(R.id.container, firstFragment)
.addToBackStack(null).commit();

getSupportFragmentManager().beginTransaction()
.replace(R.id.container, secondFragment).commit();

getSupportFragmentManager().beginTransaction()
.replace(R.id.container, thirdFragment)
.addToBackStack(null).commit();

推荐阅读